2011-11-04 3 views
1

J'ai un fichier XML situé à l'URL spécifiée, qui inclut un noeud de probabilité de précipitation, qui a plusieurs éléments de "valeur" dont la ou les déclarations d'instance de schéma leur permettent d'être nets. Cependant, la fonction attributes() en php n'affiche pas les déclarations XSI de cet élément.en utilisant php, comment accéder aux attributs de l'élément XML déclarés par la déclaration XML Schema?

$feedURL= "http://forecast.weather.gov/MapClick.php?lat=32.78520&lon=-79.99400&FcstType=dwml"; 

// read feed into SimpleXML object 
$wxml = simplexml_load_file($feedURL); 

echo $wxml->data->parameters->{'probability-of-precipitation'}->value[0]->attributes(); 

Est-il possible d'imprimer des 'attributs XSI' ?? Merci

Répondre

0

Dans le cas de cette variable $ feedURL, le fichier XML transmis inclut une directive d'espace de nommage XML qui spécifie que l'espace de noms du préfixe "XSI" est référencé par l'URI "http: //www.w3. org/2001/XMLSchema-instance. "

Ainsi, afin d'accéder aux attributs (@attributes) collection correspondant à la valeur [0] élément, vous devez spécifier cette URI dans la fonction d'attributs valeur du paramètre, par exemple:

print_r($wxml->data->parameters->{'probability-of-precipitation'}->value[0]->attributes('the_XSI_prefix's_URI')); 

ci-dessus volonté sortie dans votre navigateur:

Nil, 

si le xsi: nil = directive "true" est passé dans la version actuelle du fichier XML http://forecast.weather.gov/MapClick.php?lat=32.78520&lon=-79.99400&FcstType=dwml.

+0

le w3c élabore des espaces de noms XML et des préfixes à: http://www.w3schools.com/XML/xml_namespaces.asp – user377241