【问题标题】:Want to find a specific node in xml想在xml中查找特定节点
【发布时间】:2012-12-11 18:24:46
【问题描述】:

目前,我的 xml 如下:

<Node_Parent>

 <Column name="ColA" value="A" />
 <Column name="ColB" value="B" />
 <Column name="ColC" value="C" />
</Node_Parent>

如何在 ColB 获得价值 B?我尝试使用XmlDocument.SelectSingleNode("Node_Parent"),但无法访问ColB?

如果我改成&lt;ColB value="B" /&gt;,可以用XmlDocument.SelectSingleNode("Node_Parent/ColB").Attributes["value"].Value,但是xml格式不好看?

谢谢。

【问题讨论】:

  • “不好看”是什么意思?另外,您是否能够使用 LINQ to XML 而不是 XmlDocument?当然可以用 XmlDocument 和 XPath 做你想做的事,但我个人会使用 LINQ to XML。
  • 您是否尝试过 xpath,例如 /Node_Parent/Column[@Name = 'ColB']/@value ?
  • 它是实际的 XML 吗?如果不是,请注意 xml 中可能的命名空间。如果节点在命名空间中,则必须指定此项
  • 大家好,非常感谢您的帮助。终于有结果了,省了很多时间。

标签: c# xml


【解决方案1】:

你需要在SelectSingleNode中写一个XPath查询:

var value = doc.SelectSingleNode(
    "Node_Parent/Column[@name = 'ColB']"
    ).Attributes["value"].Value;

有关 XPath 查询语言的详细信息,请参阅http://www.w3schools.com/xpath

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2012-02-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多