3

假设我有这样的 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 只返回链接 ='true' 的记录 + 数据子节点?例如,我想得到以下结果:

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

这在 XPath 中可行吗?

4

2 回答 2

3

不可能完全做到这一点,但您可以获取 Data 节点,然后读取它的父节点:

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

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

于 2013-03-07T15:34:43.420 回答
0

获取链接 = true 的所有数据节点

//Data[@linked='true']

获取链接的父级 = true

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

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

//Data[@linked='true']//parent
于 2013-03-11T19:22:25.097 回答