xml - 使用 xmlstarlet 搜索删除 XML 上的节点
问题描述
我需要使用 xmlstarlet 删除所有<row>
节点,<integer>3489943</integer>
但我无法找出 xpath。
文件片段如下
<?xml version='1.0' encoding='UTF-8'?>
<backup xmlns="http://www.atlassian.com/ao" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database>
<meta key="database.name" value="Oracle"/>
<meta key="database.version" value="Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit"/>
<meta key="database.minorVersion" value="1"/>
<meta key="database.majorVersion" value="12"/>
<meta key="driver.name" value="Oracle JDBC driver"/>
<meta key="driver.version" value="12.2.0.1.0"/>
</database>
<table name="AO_0A5972_NOTIFICATION_SETTING">
<column name="ID" primaryKey="true" autoIncrement="true" sqlType="2" precision="20"/>
<column name="KEY" primaryKey="false" autoIncrement="false" sqlType="12" precision="255"/>
<column name="TYPE" primaryKey="false" autoIncrement="false" sqlType="12" precision="255"/>
<column name="USER_KEY" primaryKey="false" autoIncrement="false" sqlType="12" precision="255"/>
<column name="VALUE" primaryKey="false" autoIncrement="false" sqlType="12" precision="255"/>
</table>
<data tableName="AO_733371_EVENT_PARAMETER">
<column name="EVENT_ID"/>
<column name="ID"/>
<column name="NAME"/>
<column name="VALUE"/>
<row>
<integer>3243959</integer>
<integer>59623887</integer>
<string>object#issue#created_date#0</string>
<string>1590646764000</string>
</row>
<row>
<integer>3489943</integer>
<integer>64127343</integer>
<string>object#issue#created_date#0</string>
<string>1593114489000</string>
</row>
<row>
<integer>3489943</integer>
<integer>64127355</integer>
<string>jira#status#oldstring#0</string>
<string>To Do</string>
</row>
</data>
</backup>
我试过这个但没有运气
xmlstarlet ed -d "/backup/data[@tableName='AO_733371_EVENT_PARAMETER']/row[integer=3489943]" sample.xml
谢谢,
恩里克
解决方案
您的文件使用 XML 命名空间。
xmlstarlet edit -N xyz='http://www.atlassian.com/ao' --delete '//xyz:row[xyz:integer="3489943"]' file.xml
推荐阅读
- r - 在 Ubuntu 20.04 上安装 biomaRt R 包时出现 CURL_OPENSSL_3 问题
- java - Java 文件复制到非空目标文件夹
- vue.js - 如何在 Vuetify 中使 Appbar 透明且无填充
- javascript - 在 React 钩子清理中使用 requestAnimationFrame 是否安全
- sql - PostgreSQL 在冲突目标上插入多个
- python - 如何安全地附加到字典字典
- python - 我想将整数拆分为单个元素并添加元素
- c# - 在没有手动干预的情况下无法从 selenium chrome 驱动程序与 chrome 浏览器交互
- go - 如何在 Golang 中声明没有设置长度和容量的结构切片
- c# - Prism Parent TabControl 子区域