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>

这是我可以访问并放置字符串网格的代码......我使用下一个网格......

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 回答