【发布时间】:2013-02-01 14:04:42
【问题描述】:
我有两个版本的 XmlDocument
版本 1
<?xml version="1.0" encoding="UTF-8"?>
<topElement>
<childElement1>Value</childElement1>
<childElement2>Value</childElement2>
...
</topElement>
第 2 版
<?xml version="1.0" encoding="UTF-8"?>
<topElement>
<group1>
<childElement1>Value</childElement1>
<childElement2>Value</childElement2>
</group1>
<group2>
<childElement1>Value</childElement1>
<childElement2>Value</childElement2>
</group2>
</topElement>
在这两种情况下,我都需要获取所有 childElements 的所有值并将它们添加到 CustomObject 的集合中。 据我了解,这只能通过迭代来完成。
所以我得到了顶部节点,然后像这样走:
CustomObject getLow(XmlNode node, CustomObject customObject)
{
foreach (XmlNode n in node.ChildNodes)
{
if (n.HasChildNodes == true)
{
getLow(n);
}
customObject.collection.Add(n.Name, n.InnerText);
}
return customObject;
}
毫无疑问这是错误的,请有人帮我在这两种情况下都得到正确的结果吗?
【问题讨论】:
-
好吧,也许 While 循环不是一个好主意 =) 我应该改用 if 语句吗?
-
什么是
getLow(XmlNode xmlNode) -
如果
n有子节点,您将永远不会离开while循环。 -
@t3hn00b 好吧,我的错,在那里犯了一个错误。基本上有方法自己调用。
标签: c# wpf xml iteration xmlnode