xml - 如何使用 XMLStarlet / Xpath 选择里面的文本但排除一些内在
问题描述
我有这样的html文件。基本上它的 div 包含具有一个内部跨度的文本,其余文本部分具有相当任意的格式。
<html>
<div>
<span class="c1">Text1</span><br/>
Text4<br/>
Text5
</div>
<div>
<span class="c1">TextA</span><a href="...">TextD</a>
</div>
</html>
只选择/打印 span 内的特定文本很简单
xml sel -t -m "/html/div" -v "span[@class='c1']" -n
但是,我不知道如何选择/打印范围内但范围之外的其余文本,而不管任何其他标签(如<br/>
. 该功能text()
无法按我的预期工作。
xml sel -t -m "/html/div" -v "concat(span[@class='c1'],'|',text(),'$')" -n
<br/>
将剪切标签后面的文本。
我怎么能得到类似的东西
Text1|
Text4
Text5$
TextA|TextD$
解决方案
推荐阅读
- javascript - Nuxt.js:如何创建带有前缀符号的动态路由?
- google-apps-script - 创建父文件夹时创建子文件夹
- python-3.x - 如何将文本文件的一列更改为另一种格式?
- java - 如何在后台更改android设备的显示颜色?
- git - 无法将我的文件发布到远程存储库
- reactjs - 使用 useMutation 重试(React Query)
- angular - 秋田实体商店:订阅任意数量的变更实体
- javascript - 在自定义日期开始计时器
- sql - 如何通过匹配将日期从一行复制到另一行(SCD 类型 2)
- java - 如何在数组列表java spring中获取最大值