簡體   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