【发布时间】:2015-04-25 05:37:33
【问题描述】:
我正在尝试根据当前节点的值来获取根节点的某个属性的值。
例子:
<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 在根目录中有属性的名称,我需要在其中提取值。
这行得通...
/*/@*[name()='src']
这不是。
/*/@*[name()=@bar]
我希望得到的值是@src 的值,p 标签中的“foo”。
我必须使用 XPath 1.0。
编辑: 我正在尝试找到应该是当前节点的 ref 标记的路径。
/*/@*[name()=//ref[count(preceding::ref)]/@bar]
非常感谢任何帮助!
【问题讨论】:
-
请更清楚地说明本文档中的内容是稳定和给定的,您究竟是在“动态获取”什么。
/*/@*[name()=@bar]显然是错误的,但你到底想用它实现什么? -
请提供更多上下文,说明您使用 XPath 的编程语言,显示该代码。
-
我必须使用 XPath 1.0。我在 CMS 工作。该名称与对话无关。