Как обработать XML, содержащий пользовательские пространства имен, используя SimpleXML?

Мне интересно, как анализировать значения в XML, которые, как представляется, имеют: от их имени. Я использовал:

$response = file_get_contents($url); $data = simplexml_load_string($response); 

затем выполните:

 foreach($data->item as $key => $current){ 

Тем не менее, один из последних фидов, которые я получил, имеет двоеточия во имя фида, как показано в примере ниже:

 <item> <title>foo</title> <description>foo</description> <ccc:fid>10</ccc:fid> <ccc:bid>6</ccc:bid> </item> 

Когда я пытаюсь создать $ current-> ccc: ставка php не добирается до счастья (по праву). Есть ли способ обойти это?

использование ccc: fid является расширением пространства имен, которое должно быть объявлено в xml, чтобы иметь возможность использовать его в библиотеках, таких как simplexml.

Вот несколько примеров описания пространства имен:

Надеюсь, что это поможет, хотя это немного сложно.

Элементы с двоеточиями используют префиксы пространства имен , и это абсолютно корректный XML. При использовании нескольких схем вместе пространства имен помогают различать элементы с одинаковым именем. Как объекты SimpleXMLElement в PHP обрабатывают его, вы можете по существу игнорировать часть перед двоеточием:

 $current->fid; 

Если вы хотите узнать часть пространства имен имени элемента, вы можете сделать следующее:

 $current->fid->getNamespaces(); 

«Ccc» – это пространство имен – вы должны быть в состоянии сделать

 $current->fid