我有一个SVG文档,其中包含类似于以下内容的节点:
<item>
<g>
<path fill="#FFFFFF" ... ></path>
<path fill="none" ... ></path>
<ellipse fill="none" ... ></path>
</g>
<g>
<path fill="none" ... ></path>
<path fill="none" ... ></path>
<ellipse fill="none" ... ></path>
</g>
<g>
<path fill="#FFFFFF" ... ></path>
<path fill="#FFFFFF" ... ></path>
<ellipse fill="#FFFFFF" ... ></path>
</g>
</item>
我要做的只是选择仅包含具有<g>
属性的子项的fill="none"
个节点。所以我试图找到一个只与我的例子中的第二个<g>
节点匹配的XPath。
我已经完成了谷歌搜索和搜索堆栈溢出的份额,似乎没有任何工作。
我认为应该最接近的一个就是给我一个错误,说明它不是使用$x()
帮助器的Google Chrome开发人员工具中的有效XPath表达式。
*[name()="g" and descendants::*[@fill="none"]]
感谢任何帮助
由于
答案 0 :(得分:3)
尝试:
*[ name()="g"
and descendant::*[@fill="none"]
and count(descendant::*[@fill="none"]) = count(descendant::*)
]