XPath:Select child 基于有 'twins' 的兄弟姐妹
XPath: Select child based on siblings where there are 'twins'
我就是想不通。所以我有以下 XML:
<config>
<environment>
<loc>eu</loc>
<url>something</url>
</environment>
<environment>
<loc>au</loc>
<loc>ap</loc>
<url>somethingElse</url>
</environment>
我想根据给定的 <loc>
获取 <url>
元素。
我有以下 XPath,如果我想要 eu 的 <url>
,它可以工作,但如果我想要 ,它就不起作用ap.
有效 (returns 'something')
/config/environment[loc="eu"]/url
不起作用(returns 没有,期待 'somethingElse')
/config/environment[loc="ap"]/url
我知道 /config/environment[loc[1]="ap"]/url
可以工作,但我可以有任意数量的 <loc>
元素,所以我不希望我的 XPath 如此静态/依赖于位置。
如果能提供任何帮助,我假设只是一个简单的调整,所以我可以得到 <url>
而不管 <loc>
的顺序如何,将不胜感激。
试试这个:
/config/environment/loc[text() = 'eu']/following-sibling::url
或者这个:
/config/environment/loc[text() = 'eu']/following-sibling::url[1]
我就是想不通。所以我有以下 XML:
<config>
<environment>
<loc>eu</loc>
<url>something</url>
</environment>
<environment>
<loc>au</loc>
<loc>ap</loc>
<url>somethingElse</url>
</environment>
我想根据给定的 <loc>
获取 <url>
元素。
我有以下 XPath,如果我想要 eu 的 <url>
,它可以工作,但如果我想要 ,它就不起作用ap.
有效 (returns 'something')
/config/environment[loc="eu"]/url
不起作用(returns 没有,期待 'somethingElse')
/config/environment[loc="ap"]/url
我知道 /config/environment[loc[1]="ap"]/url
可以工作,但我可以有任意数量的 <loc>
元素,所以我不希望我的 XPath 如此静态/依赖于位置。
如果能提供任何帮助,我假设只是一个简单的调整,所以我可以得到 <url>
而不管 <loc>
的顺序如何,将不胜感激。
试试这个:
/config/environment/loc[text() = 'eu']/following-sibling::url
或者这个:
/config/environment/loc[text() = 'eu']/following-sibling::url[1]