【问题标题】:XPath to return only specific child nodes but with the parent - possible?XPath 只返回特定的子节点但与父节点 - 可能吗?
【发布时间】:2013-03-07 15:28:45
【问题描述】:

假设我有这样的 XML:

<Entity>
    <Record name="My Record 1" id="3a41b5c1-2462-e211-8a1c-005056b02dd2" count="1">
        <Data name="ec_name" value="My Name 1" linked="false" />
        <Data name="ec_allteams" value="100000000" linked="false" />
        <Data name="ec_teamtype" value="100000001" linked="false" />
    </Record>
    <Record name="My Record 2" id="3a41b5c1-2462-e211-8a1c-005056b02dd3" count="2">
        <Data name="ec_name" value="My Name 2" linked="false" />
        <Data name="ec_allteams" value="100000002" linked="false" />
        <Data name="ec_teamtype" value="100000003" linked="true" />
    </Record>
    <Record name="My Record 3" id="3a41b5c1-2462-e211-8a1c-005056b02dd4" count="3">
        <Data name="ec_name" value="My Name 3" linked="false" />
        <Data name="ec_allteams" value="100000004" linked="false" />
        <Data name="ec_teamtype" value="100000005" linked="false" />
    </Record>
</Entity>

什么是 XPath,只返回linked='true' 的 Record + Data 子节点?比如我想得到如下结果:

    <Record name="My Record 2" id="3a41b5c1-2462-e211-8a1c-005056b02dd3" count="2">
        <Data name="ec_teamtype" value="100000003" linked="true" />
    </Record>

这在 XPath 中可行吗?

【问题讨论】:

    标签: c# .net xml xpath


    【解决方案1】:

    不可能完全得到那个,但你可以得到 Data 节点,然后读取它的父节点:

    数据节点:/Entity/Record/Data[@linked='true']

    包含带有linked=true 的子节点的记录节点:/Entity/Record[Data/@linked='true']

    【讨论】:

    • 我是这么认为的 :( 谢谢你的建议。
    【解决方案2】:

    获取linked = true的所有数据节点

    //Data[@linked='true']
    

    获取链接的父级 = true

    //Data[@linked='true']/..
    

    这将返回已链接=true 的父节点和子节点

    //Data[@linked='true']//parent
    

    【讨论】:

      猜你喜欢
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多