xpath - XPath 从笔记列表中选择子笔记并连接所有文本节点
问题描述
<categoryPath>
<category>
<id>01</id>
<name>one</name>
</category>
<category>
<id>02</id>
<name>two</name>
</category>
<category>
<id>03</id>
<name>three</name>
</category>
<category>
<id>04</id>
<name>four</name>
</category>
</categoryPath>
如上所示,我有一个 XML 结构。谁能帮助我如何编写可以产生以下结果的 XPath?请注意,类别节点的数量是动态的,值可以是任何值。XPath 应该考虑任意数量的可用类别元素(不固定)。
一 -> 二 -> 三 -> 四
解决方案
使用 XPath 2.0,string-join(//category/name,",")
将输出 :one,two,three,four
但我不确定您的软件是否支持此功能。
使用 XPath 1.0,由于您不知道category
元素的数量,您可以编写一个最多支持 10 个元素的表达式(如果需要,可以添加更多):
substring-before(concat(//category[1]//name,",",//category[2]//name,",",//category[3]//name,",",//category[4]//name,",",//category[5]//name,",",//category[6]//name,",",//category[7]//name,",",//category[8]//name,",",//category[9]//name,",",//category[10]//name),",,")
输出 :one,two,three,four
推荐阅读
- android - 如何为 camera2 api 创建一个圆形 TextureView
- html - 升级到 WordPress v5.1 后锚标签在编辑页面自动出现 n 次
- arduino - 串口软件无法读写数据
- php - 如何通过url从另一个文件调用类函数?
- sql - 在每行上按降序显示一系列字符 SQL Server
- angular - 我想检索后端 Spring 数据 JSON 响应到前端 Angular 的图像上的“totalPages”
- c - 如何删除双链表中所有出现的特定字符?
- python - 具有本地辅助 SQLite 数据库的 Django 网站
- unit-testing - 在自定义 JS 类上导出导致使用 babel-jest 进行测试时出错
- java - SOAP 连接握手期间远程主机关闭连接