У меня возникли проблемы с получением значений тегов XML-канала, который имеет пространство имен.Получение массива значений из содержимого XML с пространством имен в PHP
Я прочитал и попытался реализовать некоторые из рекомендованных ответов на предыдущие вопросы, но я все еще получаю пустой массив, или предупреждение, как
Warning: SimpleXMLElement::xpath() [simplexmlelement.xpath]: Undefined namespace prefix
Я прочитал Parse XML with Namespace using SimpleXML.
данные кормаXML-выглядит следующим образом:
<Session>
<AreComplimentariesAllowed>true</AreComplimentariesAllowed>
<Attributes xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>0000000009</d3p1:string>
<d3p1:string>0000000011</d3p1:string>
</Attributes>
</Session>
Мой текущий код:
foreach($xml->Session as $event){
if(!empty($event->Attributes)){
foreach($event->xpath('//Attributes:d3p1') as $atts) {
echo $atts."<br />";
}
}
}
Любое руководство будет оценено.
Спасибо.
Спасибо за это. Non из них работал, но будет ли это потому, что ссылка в пространстве имен теперь мертва? http://schemas.microsoft.com/2003/10/Serialization/Arrays – David
@David, фактически оба образца работают, если вы правильно загружаете '$ xml'. [Пример] (https://eval.in/682071) –
Изначально я использую cURL для получения данных в виде XML (curl_setopt ($ ch, CURLOPT_HTTPHEADER, array («Accept: application/xml»), а затем загружаю с помощью: $ xml = new SimpleXMLElement (str_replace («&», «&», $ data)); – David