我需要从包含颜色ccff00ff
的KML中选择所有<Style>
块。类似于:
<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
更改为我想要的任何内容,它仍然匹配,所以我可以假设它根本不起作用!
'//ns:Style[.//ns:color[contains(text(), 'ccff00ff')]]'
引号不嵌套;在单引号中使用双引号:
'//ns:Style[.//ns:color[contains(text(), "ccff00ff")]]'
您链接的示例使用了相反的引号,因为cmd.exe
不将单引号识别为引号字符。由于bash也将双引号识别为引号字符,所以可以这样做,但它们是"软引号",因此可能会遇到一些麻烦。就XPath而言,两种引号类型完全相同。