gpt4 book ai didi

xml - 使用 Delphi 和 NativeXML 浏览 XML 文件 :

转载 作者:数据小太阳 更新时间:2023-10-29 02:40:56 29 4
gpt4 key购买 nike

假设我有一个看起来像这样的 XML 文件

<NOTE>
<TO>
<CONTACT>
<NAME>Tove</NAME>
<EMAIL>tove@home.com</EMAIL>
</CONTACT>
<CONTACT>
<NAME>Biggles</NAME>
<EMAIL>biggles@home.com</EMAIL>
</CONTACT>
</TO>
<FROM>
<CONTACT>
<NAME>Jani</NAME>
<EMAIL>jani@home.com</EMAIL>
</CONTACT>
</FROM>
<HEADING>Reminder</HEADING>
<BODY>Party this weekend!</BODY>
</NOTE>

使用 NativeXML(至少到版本 3.06)和这段代码

procedure TForm1.btnLoad1st2ndClick(Sender: TObject);
// Load an XML document and show the nodes present by enumerating them. Here
// we do only levels 1 and 2. An iterative approach could show all levels deep
var
i, j: integer;
NodeLevel1, NodeLevel2: TXmlNode;
begin
// Clear the memo and create instance
Memo1.Lines.Clear;
FXml.Clear;
// Load the XML file
FXml.LoadFromFile(edXmlFileOpen.Text);
// The Root property contains the root node, we use it as a base
if assigned(FXml.Root) then
begin
// Iterate through all the child nodes of Root (level 1)
for i := 0 to FXml.Root.NodeCount - 1 do
begin
NodeLevel1 := FXml.Root.Nodes[i];
// Add the name of each child to the memo
Memo1.Lines.Add(string(NodeLevel1.Name));
// Also iterate through the grandchilds (level 2)
for j := 0 to NodeLevel1.NodeCount - 1 do
begin
NodeLevel2 := NodeLevel1.Nodes[j];
// Add these names too, with an indent
Memo1.Lines.Add(' ' + string(NodeLevel2.Name));
end;
end;
end;
end;

我收到了这个回复

TO
CONTACT
CONTACT
FROM
CONTACT
HEADING
BODY

这是我所期望的

但现在我在 4.07 版中使用 NativeXML,使用相同的代码,结果是

WhiteSpace
TO
WhiteSpace
CONTACT
WhiteSpace
CONTACT
WhiteSpace
WhiteSpace
FROM
WhiteSpace
CONTACT
WhiteSpace
WhiteSpace
HEADING
CharData
WhiteSpace
BODY
CharData
WhiteSpace

您猜想在现实生活中,XML 会稍微复杂一些。有没有一种方法可以尽可能简单地获得与之前版本的 NativeXML 相同的结果?

谢谢你的帮助

PS:对了,这个帖子我看过了“How do I iterate through similar nodes in an XML document using NativeXML in Delphi?”但第一个提出的解决方案与我的示例类似,但不起作用。第二个暗示使用节点列表,这是我想避免的。

最佳答案

您应该简单地使用 xml.root.ElementCountxml.root.Elements[i] 属性而不是 NodeCount Nodes[](与 nodelevel1. 相同)以实现所需的输出

关于xml - 使用 Delphi 和 NativeXML 浏览 XML 文件 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20373961/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com