anv*_*nvd 2 xml linux bash awk sed
我有这个xml结构,我想将这个xml转换为另一个,但只有一些字段.我怎么能直接用xmllint或类似的工具呢?我知道我可以使用一些php库来解析xml,但是如果可能的话我想避免这种情况.
<?xml version="1.0" encoding="UTF-8"?>
<data>
<Entities>
<Ent_ID>1</Ent_ID>
<Name>John</Name>
<Age>15</Age>
</Entities>
<Entities>
<Ent_ID>2</Ent_ID>
<Name>Pedro</Name>
<Age>20</Age>
</Entities>
</data>
Run Code Online (Sandbox Code Playgroud)
至:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<Entities>
<Name>John</Name>
</Entities>
<Entities>
<Name>Pedro</Name>
</Entities>
</data>
Run Code Online (Sandbox Code Playgroud)
我用的是xmlstarlet:
xmlstarlet ed -d '/data/Entities/*[not(self::Name)]' filename.xml
Run Code Online (Sandbox Code Playgroud)
xmlstarlet ed -d xpath删除符合XPath表达式的输入XML中的所有节点,在这种情况下,它描述非节点的/data/Entities节点的所有子Name节点.
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |