当我尝试这样编写代码时,
XPathNodeIterator it;
string selectStr = "Equipment/Group/item";
it = nav.Select(selectStr);
while (it.MoveNext())
{
String strVal = "";
if (it.Current.HasChildren)
{
strVal = it.Current.Value.ToString(); // get wrong value here. I want to get 'COM' and 'MD'
}
}我的Xml文件就像这样
<Equipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<License licenseId="" licensePath=""/>
<Group>
<item>
<key>COM</key>
<value>
<format>10</format>
<value>0</value>
</value>
</item>
<item>
<key>MD</key>
<value>
<format>20</format>
<value>test</value>
</value>
</item>
.....我发现当我使用while方法循环所有的xml文件时非常方便。
但是我不知道当我像上面那样定义一个XPathNodeIterator时,如何建立关系来获取元素的值?
实际上,我需要在XPathNodeIterator的帮助下读取整个Xml文件。
发布于 2010-12-08 17:31:00
您必须为每个子节点启动一个新的迭代器,只选择子项。一般而言,XPathNodeIterator和XPath更适合于从中提取xml数据。如果您想读取整个XML文件,您应该考虑XmlReader (非常快,只向前)或XDocument (易于使用)。
https://stackoverflow.com/questions/4385898
复制相似问题