在同一查询中选择属性和文本()

时间:2014-03-27 13:53:02

标签: xpath xpath-2.0

我想在一个查询中选择一个属性和一个节点的text()值,例如我有

<Tag1 @myattr='test'>MyText</Tag1>

我有兴趣获得&#34;测试&#34;和#34; MyText&#34;一个查询。

显而易见的

//Tag1/@myattr | //Tag1/text()

失败的原因是,Unions只允许通过节点集。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为,鉴于XPath 2.0,您需要一系列使用//Tag1/(@myattr, .)/string()获得的字符串值。如果您想要一个字符串,请使用//Tag1/string-join((@myattr, .), ' ')

顺便说一句,您的路径//Tag1/@myattr | //Tag1/text()将选择包含属性值和文本节点的序列。我不明白这会失败。