У меня есть XML в следующей форме, которую я хочу проанализировать с помощью PHP (я не могу изменить формат XML). Ни SimpleXML, ни DOM, похоже, не обрабатывают разные пространства имен - может ли кто-нибудь дать мне пример кода? Приведенный ниже код не дает никаких результатов.Анализ XML с несколькими пространствами имен в PHP
<atom:feed>
<atom:entry>
<atom:id />
<otherns:othervalue />
</atom:entry>
<atom:entry>
<atom:id />
<otherns:othervalue />
</atom:entry>
</atom:feed>
$doc = new DOMDocument();
$doc->load($url);
$entries = $doc->getElementsByTagName("atom:entry");
foreach($entries as $entry) {
$id = $entry->getElementsByTagName("atom:id");
echo $id;
$othervalue = $entry->getElementsByTagName("otherns:othervalue");
echo $othervalue;
}
'SimpleXMLElement-> children' или' DOMElement :: getElementsByTagNameNS (строка $ NamespaceURI, строка $ LocalName) '(который будет УИР определяется' atom' и 'entry' без' атома: 'prefix), и, пожалуйста, просто для этого, найдите один из сотен подобных вопросов здесь, на SO. Это НЕ новый вопрос длинным выстрелом. – Wrikken
просто '$ doc-> getElementsByTagName (" entry ");' Ключевое слово в руководстве - это локальное имя *. – Gordon