2009-07-15 7 views
2

Je me demande comment analyser les valeurs en XML qui semblent avoir: dans leur nom. Je me sers:Comment analyser XML contenant des espaces de noms personnalisés à l'aide de SimpleXML?

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

faire alors:

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

Cependant, l'un des flux dernière que j'ai donné a au nom côlons de l'aliment comme on le voit dans l'exemple ci-dessous:

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

Lorsque je tente de créer un $ current-> ccc: php offre ne se pas heureux (à juste titre). Y a-t-il un moyen de contourner cela?

Répondre

3

Les éléments avec des deux-points utilisent namespace prefixes, et il est parfaitement valide XML. Lorsque vous utilisez plusieurs schémas ensemble, les espaces de noms permettent de différencier les éléments ayant le même nom. Les objets de SimpleXMLElement manière en PHP gérer, vous pouvez essentiellement ignorer la partie avant du côlon:

$current->fid; 

Si vous voulez savoir la partie d'espace de nom du nom de l'élément, vous pouvez le faire:

$current->fid->getNamespaces(); 
2

Le « ccc » est un espace de nom - vous devriez être en mesure de le faire

$current->fid 
Questions connexes