繁体   English   中英

无法使用PHP中的xpath()函数从XML检索数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM