1

我有一个位于指定 URL 的 xml 文件,其中包括一个降水概率节点,该节点有几个“值”元素,其模式实例声明允许它们为空。但是,php 中的 attributes() 函数不显示该元素的 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 属性”?谢谢

4

1 回答 1

0

对于这个 $feedURL 变量,传递的 XML 文件包含一个 XML 命名空间指令,该指令指定“XSI”前缀的命名空间由 URI “http://www.w3.org/2001/XMLSchema-实例。”

因此,为了访问 value[0] 元素对应的属性(@attributes)集合,您需要在属性函数参数值中指定此 URI,例如:

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

以上将在您的浏览器中输出:

Nil,

如果在http://forecast.weather.gov/MapClick.php?lat=32.78520&lon=-79.99400&FcstType=dwml XML 文件的当前版本中传递了 xsi:nil="true" 指令。

于 2011-11-04T23:21:56.540 回答