xmlstarlet:过滤掉带有属性的元素

2024-04-10

如何过滤掉某些类型的不具有神奇值属性的元素并保留文档的其余部分?所有这一切都使用xmlstarlet?

到目前为止我所要做的是:

cat << EOF > database.xml
<?xml version="1.0"?>
<database>

    <some name="A" />
    <some name="B" />
    <some name="C" />
    <text>this is some text to be applied...</text>
    <project>
        <test deeper="structure"/>
    </project>

</database>
EOF

and

xmlstarlet sel -t -m "*" -c "*[not(self::some[@name != 'A'])]" database.xml

yields

<some name="A"/><text>this is some text to be applied...</text><project>
        <test deeper="structure"/>
    </project>

但这隐藏了我的珍贵<database> tag。除了缩进,这不是问题......并且在以下情况下不起作用<some>不是以下的直系后代<database>, 的孩子<project>例如。

我想要得到的是数据库原样,但是所有<some>已删除except那个叫A:

<database>

    <some name="A" />


    <text>this is some text to be applied...</text>
    <project>
        <test deeper="structure"/>
    </project>

</database>

问候


不幸的是,xmlstarlet 的sel不支持apply-templates,但您可以使用ed为此命令:

xmlstarlet ed -d '/database//some[@name != "A"]' input.xml
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xmlstarlet:过滤掉带有属性的元素 的相关文章

随机推荐

  • 如何在Python 3中用前导零填充字符串[重复]

    这个问题在这里已经有答案了 我正在努力使length 001在Python 3中 但每当我尝试打印它时 它都会截断不带前导零的值 length 1 我该如何阻止这种情况发生而不需要施放length在打印之前将其转换为字符串 利用zfill
  • 在 Android 10 的深色模式设备上进行测试时,文本颜色被覆盖为白色

    在以下 React Native 0 63 3 应用中 模拟器上的文本颜色按预期为黑色 但在 Android 10 的深色模式设备上进行测试时 文本颜色被覆盖为白色 import React from react import View T
  • 使用假网络摄像头和真实微型运行 Chromium

    我可以使用以下命令运行带有假网络摄像头的 Google Chrome google chrome stable use fake device for media stream use file for fake video capture
  • 管道末端重定向(C shell)

    我正在努力使ls tr a b gt text txt我已经完成管道 但无法将 STDOUT 添加到管道的末尾 在我的情况下 STDOUT 只能在最后一个参数中 我标记了应该进行重定向的代码部分 我认为应该打开该文件 并且dup2使用的方法
  • 如何将sbt项目导入到Eclipse中?

    我想将我的 sbt 项目导入 Eclipse 在网上搜索时 我了解到 Eclipse 有一个 sbteclipse 插件可以导入 sbt 项目 但我不知道该怎么做 我在 Ubuntu 12 04 LTS 上使用 Eclipse Kelper
  • Mysql Codeigniter Active Record - 如何执行 where_in 查询并返回正确的结果顺序?

    我有一组按特定顺序传递的 ID 需要保留 我正在从几个左连接查询与每个 ID 相关的数据 ID 是从搜索中返回的 因此必须保持顺序以使结果有效 否则搜索变得毫无意义 我的代码看起来像这样 this gt db gt where in id
  • 关于 ExpandableListView ChildView 的 Button ClickListener 的问题

    我正在尝试为我的餐厅制作一个应用程序 这是我之前遇到的问题 并且已解决 但是 您会在 ChildView 中注意到一些按钮 即 添加 就像这样对于我之前的查询here https stackoverflow com questions 63
  • 禁用与原型观察方法的链接

    我想创建一个像这样的链接 a href http example com text a 并替换行为 以便链接在单击时使用 Ajax 下载内容 对我来说重要的是不要替换 href 属性 因此复制链接仍然有效 一种解决方案是 link oncl
  • 实体框架6错误无法加载指定的元数据资源

    我在解决方案中使用实体框架 6 和 模型优先 我将 数据模型 类分离到另一个项目中 以便我可以添加对 数据模型 类的引用 而无需公开我的 数据模型上下文 和连接 我不想将我的实体数据模型项目 尤其是数据库上下文等 暴露给我的 UI 层 我有
  • 图像绘制速度

    我正在开发一款游戏 但目前我正在运行基准测试 如果有人能在这件事上帮助我 我将不胜感激 我正在做的是 当我单击开始按钮时 使用以下代码在面板上触发绘制事件 private void startToolStripMenuItem Click
  • 共享 ViewModel 以帮助片段和父 Activity 之间的通信

    虽然 JetPack 的导航组件看起来很有前途 但我却找不到实现我想要的东西的方法 让我们看一下示例应用程序屏幕 该应用程序有一个主要活动 一个顶部工具栏 一个带有 fab 的底部工具栏 我面临着两个挑战 我想以正确的方式解决它们 1 我需
  • 从密度对象(或更广泛地从一组数字)生成随机数

    假设我有一组数字 我怀疑它们来自同一分布 set seed 20130613 x lt rcauchy 10 我想要一个从相同的未知分布中随机生成一个数字的函数 我想到的一种方法是创建一个density对象 然后从中获取 CDF 并取随机均
  • (go-sql-driver/mysql) packet.go 中出现意外的 EOF 和繁忙缓冲区

    我正在得到unexpected EOF and busy buffer错误于go sql driver mysql尽管设置后SetConnMaxLifetime SetMaxIdleConns and SetMaxOpenConns按照建议
  • 使用猫鼬保存图像

    我知道已经有很多关于这个主题的帖子 但不幸的是直到现在我才找到答案 我将 angular js 与示例代码一起使用http angular js in image upload http angular js in image upload
  • 从流而不是文件加载配置文件

    我使用 OpenMappedExeConfiguration 和 ExeConfigurationFileMap 来加载配置文件 它们的重载表明它们只适用于文件名 有没有办法从流加载配置文件 背景 我想加载存储为嵌入式资源的配置文件 没有文
  • self.method = environ['REQUEST_METHOD'].upper() KeyError: 'REQUEST_METHOD' 使用 uwsgi 在 EC2 上设置 django 服务器时

    我得到了 当我击中http ec2 X YZ ABC EFG compute 1 amazonaws com admin 我很确定我的 Django 应用程序没有任何问题 因为该应用程序是空的 即 我刚刚使用创建了该应用程序django a
  • TSQL:提交时触发

    我们有一个后台系统 可以通过以下方式将发票信息插入到 SQL 数据库中 MSDTC http en wikipedia org wiki Distributed Transaction Coordinator存储过程中 应用程序插入标头 然
  • 浏览器推送通知出现错误“AbortError:注册失败 - 推送服务不可用”

    我创建了一个系统 使用 Firefox 和 Chrome 的浏览器推送通知来与网站访问者进行更多交互 我正在查看我的 Google Analytics 事件 了解订阅失败的原因 最大的原因是 推送服务不可用 我查遍了一切 试图找到这意味着什
  • 使用 PowerShell 替换文本文件的内容

    我浏览了这个网站 似乎找不到任何适合我情况的内容 基本上 我正在尝试向 NETLOGON 文件编写一个附加内容 以替换所有用户桌面上的文本文件中的文本 当前文本全面静态 我想要更改的文本对于每个用户来说都是唯一的 我想将当前文本 user1
  • xmlstarlet:过滤掉带有属性的元素

    如何过滤掉某些类型的不具有神奇值属性的元素并保留文档的其余部分 所有这一切都使用xmlstarlet 到目前为止我所要做的是 cat lt lt EOF gt database xml