xml - 用于获取 XML 结构中标记的最后出现的 Bash 命令
问题描述
我有以下示例 XML 结构:
<root>
<id>1</id>
<name>abc</name>
<id>2</id>
<name>def</name>
<id>3</id>
<name>ghi</name>
</root>
我正在尝试完成以下一项工作:
检索结构中最后一次出现的 id 标记的文本值。(在这种情况下应该输出 3)。
你能帮忙吗?
我曾尝试使用 sed 但无法将其输出 3。:D
解决方案
您可以使用遍历 XML 文件或字符串的 xpath 查询。
例如:
xpath -q -e '//root/id[last()]/text()' file.xml
xpath
是接受查询和 XML 的可执行文件/命令。
-q 代表安静,这意味着您只能在标准输出中获得您所要求的内容。
-e 出现在查询字符串之前。
// 代表开始搜索的根。
last() 是你期望 -1 做的:)。
text() 只取值,不打印被标签包围的值。
推荐阅读
- php - 从 MySQL 中的序列化列中搜索数据
- angular - 如何检测路由何时更改并在Angular中替换新视图
- node.js - 如何在不使用 findById 的情况下填充页面中的所有子模式?
- r - 将列名与 R 中的列数据连接起来(使用 data.table)
- cross-browser - yocto krogoth 版本中的 qupzilla 编译错误
- opencv - CV_GET_SEQ_ELEM abort() 已被调用
- laravel - 如何同时从 oauth 认证两种类型的用户。并且在每个请求标头中都需要两个用户凭据
- apache-spark - Spark Streaming中批处理间隔、滑动间隔和窗口大小的区别
- java - Java 应用程序的 Docusign OAuth getAccessToken 失败
- javascript - React 弹出窗口的焦点和 tabIndex