У меня есть XML, как это:SimpleXML xpath для элемента с определенным значением атрибута?
<item>
<custom-attributes>
<custom-attribute attribute-id="taco">false</custom-attribute>
<custom-attribute attribute-id="htmlContent" xml:lang="en-US">testValue</custom-attribute>
<custom-attribute attribute-id="htmlContent" xml:lang="default">testing123</custom-attribute>
</custom-attribute>
</item>
Как использовать XPath, чтобы найти custom-attribute
элемент, чем имеет атрибут-идентификатор taco
?
Как использовать xpath для поиска custom-attribute
элементов (-ов), чем имеют атрибуты-идентификаторы от htmlContent
? В этом случае 2. Также на них есть пространства имен. Я не уверен, что это важно или нет.
Я пытался что-то вроде этого:
var_dump($xml->xpath("custom-attribute[@attribute-id='taco']"));
Но это не работает. Я могу перебирать элементы custom-attribute
и искать то, что мне нужно, но было бы намного проще просто выбрать его через xpath
.
Что мне здесь не хватает?
Так XPath возвращает массив, а не SimpleXMLElement? –
Фактически выражения XPath возвращают список узлов или скаляр в зависимости от выражения, SimpleXML преобразует его в массив объектов SimpleXMLElement. – ThW
Хммм. Можно ли использовать xpath для поиска «элемента», а затем выполнить xpath в результате этого, чтобы найти элемент пользовательского атрибута? Возможно, я немного упростил свой XML в моем вопросе. –