【发布时间】:2012-01-08 02:27:40
【问题描述】:
假设我有以下 xml(一个简单的例子)
<rows>
<row>
<name>one</name>
</row>
<row>
<name>two</name>
</row>
</rows>
我正在尝试使用 XmlDocument 和 XPath 来解析它(最终我可以制作一个行列表)。
例如...
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
foreach(XmlNode row in doc.SelectNodes("//row"))
{
string rowName = row.SelectSingleNode("//name").InnerText;
}
为什么在我的 foreach 循环中,rowName 总是“一”?我希望它在第一次迭代中是“一个”,在第二次迭代中是“两个”。
似乎 //name 获得了文档中的第一个实例,而不是我所期望的行中的第一个实例。毕竟,我是在“行”节点上调用该方法。如果这是“它是如何工作的”,那么任何人都可以解释我如何改变它来满足我的需要吗?
谢谢
【问题讨论】:
-
按//row/name 选择它怎么样?这行得通吗?
标签: c# xpath xmldocument