案例是
<a>
<p id="1" userName="administrator" password="xxx" />
</a>
如果我使用“/ a / p”作为xpath查询,那么它将返回
<p id="1" userName="administrator" password="xxx" />
但是,我只想显示属性id和userName,我该怎么做?
此外,我不想使用任何xpath标准函数。
答案 0 :(得分:1)
您可以尝试在属性名称的开头使用@
来解决XPath中的属性,例如:
/a/p/@id
或同时获得id
和userName
:
/a/p/@*[name() = 'id' or name() = 'userName']
或者如果您打算获取除password
以外的所有属性(因为您有&#39;排除&#39;标签):
/a/p/@*[name() != 'password']
更新:
回应您的评论,使用concat()
函数在XPath 1.0中实际上有一个非常有限的解决方法:
concat(/a/p/@*[name() = 'id'], ', ', /a/p/@*[name() = 'userName'])
答案 1 :(得分:0)
XPath(1.0或2.0)只能返回输入文档中存在的节点,它不能创建新的或修改过的节点。为此你需要XSLT或XQuery。
您可以返回从输入文档中的节点构造的字符串,数字或布尔值 - 但这样做不使用任何标准函数听起来像受虐狂。