xml - 使用 XSLT 删除项目
问题描述
所以我已经在互联网上搜索了几天,似乎找不到任何特定于我的问题的东西。当我收到匹配项时,我需要使用 XSLT 转换删除一个项目。我有一个 XPath 表达式,它比较数据库提取和 API 提取并识别两者之间的匹配。我正在尝试使用匹配项并将它们从整个 API 提取中删除。如果我错过了任何需要的信息,我深表歉意,我对 XSLT 还是很陌生。
当前的 XML 格式:
<names>
<name>one</name>
<name>two</name>
<name>three</name>
<name>four</name>
</names>
所需的 XML 输出:
<names>
<name>one</name>
<name>two</name>
<name>four</name>
</names>
在这种情况下,假设我收到了“三”的匹配,XSLT 转换将从 XML 中删除“三”。
解决方案
如果您想避免编写 XSL 程序的麻烦,假设xmlstarlet
已安装在您的系统上并且您的 XML 文件被调用names.xml
,您可以发出:
xmlstarlet edit --delete '//name[text() = "three"]' names.xml
推荐阅读
- android - MediaPlayer setDataSource 失败,defaultUri 的 status=0x80000000
- azure - 从机器人框架中的状态数据中恢复对话数据
- nginx - 如何使用 nginx 在 https 模式下运行 odoo?
- java - Android java.lang.ClassCastException: android.view.AbsSavedState$1 无法转换为 android.widget.CompoundButton$SavedState
- android - 如何将 OpenSL ES 库作为依赖项添加到项目中?
- c++ - Resharper C++ 和 Plog 记录器
- android - Spotify API 不会创建私人播放列表
- wordpress - 如何仅使用 .htaccess 在 1and1 上托管的 WordPress 网站上的所有页面上强制使用 HTTPS
- shiny - 如何根据第一个选择选择数据 - 闪亮的应用程序
- json - 从解析的 JSON 字符串中提取一个特定的行