0

これは私のxmlファイルです:

<?xml version="1.0" encoding="utf-8"?>
<UsersF Ver="1.1">
    <row User="1" Pin="2y44ic" ExtPag="full"/>
    <row User="2" pin="tfde88" ExtPag="e45" />
    <row User="3" Pin="9gr444466gg" Level="nov" GamePag="3" />
</UsersF>

そして、これは私がアクセスして文字列グリッドを配置するコードです...私はnextgridを使用します...

procedure showXmlToString;
Count:= 0;
Conf.nxtgrd.AddRow(71);
Conf.nxtgrd.BeginUpdate;
with FXml.Root do
for i := 0 to NodeCount - 1 do
  begin
    if Nodes[i].Name <> 'Ver' then
      begin
        Conf.nxtgrd.Cell[0,count].AsString := Nodes[i].Nodes[1].Value;
        Conf.nxtgrd.Cell[1,count].AsString := Nodes[i].Nodes[2].Value;
        Conf.nxtgrd.Cell[2,count].AsString := Nodes[i].Nodes[3].Value;            
        Conf.nxtgrd.Cell[3,count].AsString := Nodes[i].Nodes[4].Value;
       count := count + 1;
      end;
  end;

ノードが終了しないという行になると、エラーが発生します。

4

1 に答える 1

0

属性にアクセスするには、使用TXmlNode.AttributeCount可能な属性の数を反復するために使用できます。このコードの主な目的が属性の取得である場合は、 を使用して属性にアクセスできますTXmlNode.Containers

すべての属性の名前と値を取得したい場合、次の反復を使用できます。

with FXML.Root do
for i := 0 to ContainerCount - 1 do
begin
  Log(Format('ContainersName=%s AtribNumber=%d',[Containers[i].Name,i]));
  for j:=0 to Containers[i].AttributeCount-1 do begin
    Log(Format('AttribName=%s AttribVal=%s',[Containers[i].Attributes[j].Name,Containers[i].Attributes[j].Value]));
  end;
end;

この例Logの手順では、文字列を画面に表示します。結果として、出力は次のようになります。

ContainersName=row AtribNumber=0
AttribName=User AttribVal=1
AttribName=Pin AttribVal=2y44ic
AttribName=ExtPag AttribVal=full
ContainersName=row AtribNumber=1
AttribName=User AttribVal=2
AttribName=pin AttribVal=tfde88
AttribName=ExtPag AttribVal=e45
ContainersName=row AtribNumber=2
AttribName=User AttribVal=3
AttribName=Pin AttribVal=9gr444466gg
AttribName=Level AttribVal=nov
AttribName=GamePag AttribVal=3

これがお役に立てば幸いです。

于 2012-10-07T12:10:15.113 に答える