[英]Cannot retrieve data from XML using xpath() function in PHP
我想解析这个 xml文件并使用XPATH检索一些字段(顺便说一句, 这是我看到xml文件的方法,你可以从这里下载):
我尝试以下代码来获得本书的版本:
$file_copac = "http://copac.ac.uk/search?isn=$isbn&rn=1&format=XML+-+MODS";
$xml = simplexml_load_file($file_copac) or die("cannot_get_data");
$temp = $xml->xpath('//edition');
var_dump($temp);
我也试过'版'但结果是空数组:
array(0) { }
我尝试使用'/ mods / originInfo [1] / edition'完整路径,以XPATH错误结束。 我用这种表示法解决问题:
$edition = (string)$xml->mods->originInfo[1]->edition;
不过我想知道xpath的问题。
看起来像默认(空)命名空间的问题,解决方法:
$namespaces = $xml->getDocNamespaces();
$xml->registerXPathNamespace('__DEFAULT_NS__', $namespaces['']);
$r = $xml->xpath('//__DEFAULT_NS__:edition');
var_dump((string)$r[0]); //string(8) "8th. ed."
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.