у меня есть документ SVG, который содержит узлы, подобные следующему:XPath - Get узел, который имеет только ребенок с определенным атрибутом
<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"
. Таким образом, я пытаюсь найти XPath, который соответствует только второму узлу <g>
в моем примере.
Я сделал свою долю поиска и поиска в переполнении стека, и ничего не работает.
Ближайший, который, как я думал, ДОЛЖЕН работать, дает мне сообщение о том, что это не допустимое выражение XPath в инструментах разработчика Google Chrome с помощью помощника $x()
.
*[name()="g" and descendants::*[@fill="none"]]
Любая помощь приветствуется
Благодаря
Это все еще выбирает '' узлы, которые содержат 'Заправлять = "нет"' а также 'заливка = "# FFFFFF"'. –
marcaddeo
Плохо, я неправильно понял. Смотрите мой обновленный XPath –
Это делает трюк! Спасибо! – marcaddeo