作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如何过滤掉某些类型的元素,这些元素不具有具有魔法值的属性并保留文档的其余部分?所有这些都使用 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
和
xmlstarlet sel -t -m "*" -c "*[not(self::some[@name != 'A'])]" database.xml
产量
<some name="A"/><text>this is some text to be applied...</text><project>
<test deeper="structure"/>
</project>
但这隐藏了我的宝贵 <database>
tag
.除了缩进,这不是问题...并且在 <some>
时不起作用不是 <database>
的直系后代, children <project>
例如。
我想要得到的是数据库原样,但是所有<some>
删除了名为 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
关于xmlstarlet:过滤掉具有属性的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279377/
我正在编写一个快速的 preg_replace 来从 CSS 中删除注释。 CSS 注释通常有这样的语法: /* Development Classes*/ /* Un-comment me for
使用 MySQL,我有三个表: 项目: ID name 1 "birthday party" 2 "soccer match" 3 "wine tasting evening" 4
我是一名优秀的程序员,十分优秀!