根据当前节点值获取根属性值

时间:2015-04-24 19:29:14

标签: xml xpath

我正在尝试根据当前节点的值获取根节点上的属性值。

示例:

<root src="Bob" att="Mark">
<div>
<p>My name is <ref bar="src"/>.</p>
<p>My name is <ref bar="att"/>.</p>
</div>
</root>

我叫鲍勃。

我的名字是马克。

到目前为止我有这个XPAth。它一直有效,直到我尝试根据@bar中提供的本地属性值测试名称。 @bar在root中我需要提取值的属性名称。

这有效......

/*/@*[name()='src']

这不是。

/*/@*[name()=@bar]

我希望获得的值是p标签中@src,“foo”的值。

我必须使用XPath 1.0。

编辑: 我正试图找到应该是当前节点的ref标签的路径。

/*/@*[name()=//ref[count(preceding::ref)]/@bar]

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

You need to have a path to the bar attribute in your predicate.

/*/@*[name()=../div/p/ref/@bar]