【发布时间】:2022-11-11 00:02:27
【问题描述】:
我正在尝试根据属性的值删除 xml 文件中的重复条目。
<?xml version='1.0' encoding='UTF-8'?>
<root>
<entries>
<entry name="entry1">
<value>1</value>
</entry>
<entry name="entry1"> <-- Duplicate name here
<value>2</value>
</entry>
<entry name="entry2">
<value>3</value>
</entry>
</entries>
</root>
我想要以下
<?xml version='1.0' encoding='UTF-8'?>
<root>
<entries>
<entry name="entry1">
<value>1</value>
</entry>
<entry name="entry2">
<value>3</value>
</entry>
</entries>
</root>
我努力了
xmlstarlet edit --delete '/_:root/_:entries/*[@name = .//preceding-sibling::*/@name]'
但是xpath 与属性name="entry1" 的上一个条目不匹配
【问题讨论】:
-
重复的条目总是一个接一个,还是可以用非重复的条目分隔?
标签: xml xpath xmlstarlet