Мне нужен XPath, который выберет все родительские узлы дочерним элементом с атрибутом, который содержит хотя бы одно из списка значений.
Пример XML
<mynodes>
<theParentNode>
<theChildNode name="one two" />
</theParentNode>
<theParentNode>
<theChildNode name="one all" />
</theParentNode>
<theParentNode>
<theChildNode name="two" />
</theParentNode>
<theParentNode>
<theChildNode name="all" />
</theParentNode>
</mynodes>
Я хочу выбрать всеузлы, где имя содержит «один» ИЛИ «все» (или любую другую комбинацию в этом отношении).Таким образом, возвращаемый nodeList:
<theParentNode>
<theChildNode name="one two" />
</theParentNode>
<theParentNode>
<theChildNode name="one all" />
</theParentNode>
<theParentNode>
<theChildNode name="all" />
</theParentNode>
Пока мой запрос выглядит следующим образом (обратите внимание, я не использую схему):
//theChildNode[contains(tokenize(@name, '\s'), "one")]
Что получитмне все элементы вендора, содержащие "один" в их атрибуте имени.Но я не уверен, как лучше указать несколько значений вместо «одного», а затем лучший способ вернуться к theParentNode
.Я всегда мог бы сделать все это в php, но id, если это возможно, просто сделать это с XPath.