【问题标题】:Using xPath in C# to get value of node attribute在 C# 中使用 xPath 获取节点属性的值
【发布时间】:2012-01-10 13:48:54
【问题描述】:

如果我有以下 xml 文档:

<xml>
<data>
<dataset name="X"></dataset>
</data>
</xml>

如何在 c# 中使用 Xpath 来检索 name 属性的值(即 X)

【问题讨论】:

    标签: c# asp.net .net xml xpath


    【解决方案1】:

    如何在 c# 中使用 Xpath 来检索 name 属性的值 (即 X)

    这个 XPath 表达式

    /xml/data/dataset/@name 
    

    选择想要的属性——所有名为name 的属性属于dataset 元素,该元素是data 元素的子元素,而data 元素是XML 文档顶部元素的子元素。

    但是,您想要获得 属性的值 ——而不是节点本身

    这个 XPath 表达式

    string(/xml/data/dataset/@name) 
    

    当评估时,产生想要的字符串值

    在 C# 中,使用 XPathNavigator.Evaluate() 方法计算上述表达式。

    【讨论】:

      【解决方案2】:

      使用这个 XPath:

      xml/data/dataset/@name
      

      【讨论】:

        【解决方案3】:

        使用这个 XPath 表达式:

        xml/data/dataset
        

        这将检索数据集节点。之后,您可以使用 C# 工具从节点中检索属性 name

        【讨论】:

        • 如果我知道路径但不知道动态 xml 内容,那很好
        • 那么您的问题具有误导性。如果您只需要查找其中具有name 属性的元素,请使用@name 路径而不是我上面写的路径。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多