Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 基于当前节点值获取根属性值_Xml_Xpath - Fatal编程技术网

Xml 基于当前节点值获取根属性值

Xml 基于当前节点值获取根属性值,xml,xpath,Xml,Xpath,我试图根据当前节点的值获取根节点上属性的值 /*/@*[name()=//ref[count(preceding::ref)]/@bar] 例如: <root src="Bob" att="Mark"> <div> <p>My name is <ref bar="src"/>.</p> <p>My name is <ref bar="att"/>.</p> </div> </roo

我试图根据当前节点的值获取根节点上属性的值

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

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

/*/@*[name()=@bar]
我希望得到的值是p标记中@src,foo的值

我必须使用XPath1.0

编辑: 我试图找到ref标记的路径,它应该是当前节点

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

非常感谢您的帮助

您需要在谓词中具有指向bar属性的路径

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

请更清楚地说明本文档中哪些内容是稳定的,哪些是给定的,哪些是动态得到的/*/@*[name=@bar]显然是错误的,但你到底想用它实现什么呢?请提供更多的上下文,说明你在使用XPath的编程语言,展示代码。我必须使用XPath 1.0。我在CMS工作。姓名与对话无关。谢谢您的回复。如何确定我当前在哪个ref标记中?这与文档顺序中选择的节点列表相匹配。因此,在您的示例中,src是第一位的,att是第二位的。您可以附加位置谓词[1]或[2]以独占地获取第一个和第二个ref标记。我应该在当前的ref节点上执行操作。如果您是从XSLT代码调用它,那么可以使用current来引用当前节点/*/@*[name=current/@bar]不幸的是,我使用的软件中没有实现current。我也试过了。/@bar,但没有成功。