0

我需要<Style>从包含颜色的 KML 中选择所有块ccff00ff。就像是:

<Style id="inline">
    <LineStyle>
        <color>ccff00ff</color>
        <width>5</width>
    </LineStyle>
</Style>

我已经把头撞到墙上好几个小时了,这是根据这个讨论我能得到的最接近的结果:

xmlstarlet sel -N 'ns=http://www.opengis.net/kml/2.2' -t -c '//ns:Style[.//ns:color[contains(text(), 'ccff00ff')]]' myplaces.kml

不幸的是,如果我更改ccff00ff为我想要的任何内容,它仍然匹配,所以我可以假设它根本不起作用!

4

1 回答 1

1
'//ns:Style[.//ns:color[contains(text(), 'ccff00ff')]]'

行情不嵌套;在单引号内使用双引号:

'//ns:Style[.//ns:color[contains(text(), "ccff00ff")]]'

您链接的示例有相反的引号,因为cmd.exe不将单引号识别为引号字符。由于 bash 确实也将双引号识别为引用字符,因此您可以这样做,但它们是“软引号”,因此您可能会遇到一些麻烦。就 XPath 而言,两种引用类型完全相同。

于 2013-06-23T01:54:45.857 回答