我正在尝试使用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
中使用它答案 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(/*/*,', ')