используя php, как получить доступ к атрибутам элемента XML, объявленным объявлением схемы XML? - PullRequest
1 голос
/ 04 ноября 2011

У меня есть xml-файл, расположенный по указанному URL-адресу, который включает в себя узел вероятности осаждения, который имеет несколько элементов «value», чьи объявления (экземпляры) схемы позволяют им иметь нулевое значение. Однако функция attribute () в php не показывает объявления XSI этого элемента.

$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();

Можно ли напечатать «атрибуты XSI» ?? Спасибо

1 Ответ

0 голосов
/ 05 ноября 2011

В случае этой переменной $ feedURL передаваемый файл XML включает в себя директиву пространства имен XML, которая указывает, что пространство имен префикса "XSI" указывается с помощью URI "http://www.w3.org/2001/XMLSchema-instance."

Таким образом, чтобы получить доступ к коллекции атрибутов (@attributes), соответствующей элементу value [0], вам нужно указать этот URI в значении параметра функции attribute, например ::

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

Выше будет выведено в вашем браузере:

Nil,

если в текущей версии XML-файла http://forecast.weather.gov/MapClick.php?lat=32.78520&lon=-79.99400&FcstType=dwml передана директива xsi: nil = "true".

...