【发布时间】:2015-05-09 12:16:46
【问题描述】:
我正在尝试使用 xmlStarlet 编辑 XML 文件,因此我必须在 XPath 中指定要删除的元素,并且我遇到了 XPath 规范的问题。 XML 文件将包含以下内容:
<SoundStreamBlock>
<data>base64 characters</data>
</SoundStreamBlock>
<ShowFrame/>
我的问题是,在之前的一些删除之后,我留下了 2 个 ShowFrame 元素,一个接一个,即 2 个相邻的元素:
<SoundStreamBlock>
<data>base64 characters</data>
</SoundStreamBlock>
<ShowFrame/>
<ShowFrame/>
我想删除重复的 ShowFrame 元素。在 xmlStarlet 中使用以下 XPath 规范不起作用:
"/swf/Header/tags/ShowFrame/preceding::ShowFrame"
编辑:我也尝试过使用前面的兄弟姐妹
这将删除除最后一个之外的 所有 ShowFrame 元素。我只想删除单个 duplicate ShowFrame 元素,即仅当 ShowFrame 元素紧跟 ShowFrame 元素时。
我需要在 XPath 规范中添加什么来限制这个相邻元素?
谢谢,
-安德烈斯
【问题讨论】: