1

考虑这个 XML 文件结构

...
<sometag attr="foobar">
    <subtag>
        <subsubtag someattr="foo" />
        <subsubtag someattr="bla" />
        <subsubtag someattr="bar" />
    </subtag>
</sometag>
...

目前我有这个 XPath Query:/sometag/subtag/subsubtag[@someattr='foo']这让我得到了这些子标签。是否可以attr="foobar"从此查询中获取?所以我想attrsometagsubsubtagwith的地方得到所有东西someattr="foo"

4

3 回答 3

2

我刚刚发现的另一种可能性:

/sometag/subtag/subsubtag[@someattr='foo']/../../@attr

您可以使用..来选择父节点。你需要在hirachie中选择属性。

于 2013-03-27T10:27:39.023 回答
1
/sometag[subtag/subsubtag[@someattr="foobar"]]/@attr

或更不严格:

//sometag[//subsubtag[@someattr="foobar"]]/@attr

于 2013-03-27T10:46:46.877 回答
1

在xml文件上:

<root>
<sometag attr="foobar1"> 
  <subtag> 
    <subsubtag someattr="foo"/>  
    <subsubtag someattr="bla"/>  
    <subsubtag someattr="bar"/> 
  </subtag> 
</sometag>
<sometag attr="foobar2"> 
  <subtag> 
    <subsubtag someattr="foo"/>  
    <subsubtag someattr="bla"/>  
    <subsubtag someattr="bar"/> 
  </subtag> 
</sometag>
<sometag attr="foobar3">
    <subtag>
        <subsubtag someattr="f2342oo" />
        <subsubtag someattr="bla" />
        <subsubtag someattr="bar" />
    </subtag>
</sometag>
</root>

尝试:

/root/sometag/subtag/subsubtag[@someattr='foo']/../../@attr

我在这里做了一个快速测试,它似乎对我有用。

于 2013-03-27T10:26:05.003 回答