帮助将xpath结果转换为格式化字符串

时间:2011-06-03 07:06:02

标签: xml xpath xpath-2.0

我正在尝试使用xpath解析xml提要。 Feed包含如下所示的类别:

<categories>
<category id="6">Category 6</category>
<category id="12">Category 12</category>
<category id="19">Category 19</category>
</categories>

我目前使用路径'categories'来选择以字符串格式返回“Category 6Category 12Category 19”的所有子节点。我希望输出类似于“类别6,类别12,类别19”。我怎样才能做到这一点?我查看了xpath函数,但似乎没有任何东西适合这个任务。

我在Drupal的xpath parser module

中使用它

3 个答案:

答案 0 :(得分:2)

Pure XPath是:

concat(categories/category[id="6"],', ',
       categories/category[id="12"],', ',
       categories/category[id="19"])

但如果你需要一些动态的东西,它就不会非常有用,我的意思是如果你不知道categories孩子先验

对于动态选择使用:

string-join(categories/*,', ')

string-join(/categories/*,', ')

取决于具体情况。

答案 1 :(得分:1)

通常,您应该使用/ categories / category xpath选择类别节点,然后枚举节点集并显示每个节点的内容,后跟逗号(最后一个节点除外)。确切的代码取决于您使用的技术。

答案 2 :(得分:1)

在静态未知的XML文档的一般情况下,仅使用纯XPath 1.0无法生成想要的结果 - 需要托管它的编程语言的一些帮助。

一个简单而纯粹的XPath 2.0解决方案

string-join(/*/*,', ')