使用 PHP 简单 XML 和 XPath 解析深度 XML
Parsing deep XML with PHP SimpleXML and XPath
PHP 菜鸟在这里。我似乎误解了如何使用 XPath 获取 XML 节点的值,而且我一直无法找到 Whosebug 的答案来完全解决我做错的问题。
因此,使用 RPG Geek 的 API,我试图获取有关游戏 Dread 的一些信息。 (Here's a link to the URI.)
$rpggeekXML = simplexml_load_file('https://www.rpggeek.com/xmlapi/boardgame/166952?&stats=1');
$rating = $rpggeekXML->xpath('ratings/average');
$usersrated = $rpggeekXML->xpath('ratings/usersrated');
我知道我已经成功地引入了 rpggeek XML,因为如果我这样做 var_dump($rpggeekXML);
,我可以看到我期望的所有信息。但是,如果我做 var_dump($rating);
或 var_dump($usersrated);
,它 returns array(0) { }
。所以看来我一定是搞砸了 XPath 行,但我不知道如何做。我做错了什么?
我认为你的 xpath 语法有误。你可以试试这个
$rpggeekXML = simplexml_load_file('https://www.rpggeek.com/xmlapi/boardgame/166952?&stats=1');
$rating = $rpggeekXML->xpath('//ratings/average');
$usersrated = $rpggeekXML->xpath('//ratings/usersrated');
使用完整路径查找所需节点:
$rating = $rpggeekXML->xpath( 'boardgame/statistics/ratings/average' );
echo $rating[0];
收集文档中的所有 "average"
个节点:
$rating = $rpggeekXML->xpath( '//average' );
echo $rating[0];
PHP 菜鸟在这里。我似乎误解了如何使用 XPath 获取 XML 节点的值,而且我一直无法找到 Whosebug 的答案来完全解决我做错的问题。
因此,使用 RPG Geek 的 API,我试图获取有关游戏 Dread 的一些信息。 (Here's a link to the URI.)
$rpggeekXML = simplexml_load_file('https://www.rpggeek.com/xmlapi/boardgame/166952?&stats=1');
$rating = $rpggeekXML->xpath('ratings/average');
$usersrated = $rpggeekXML->xpath('ratings/usersrated');
我知道我已经成功地引入了 rpggeek XML,因为如果我这样做 var_dump($rpggeekXML);
,我可以看到我期望的所有信息。但是,如果我做 var_dump($rating);
或 var_dump($usersrated);
,它 returns array(0) { }
。所以看来我一定是搞砸了 XPath 行,但我不知道如何做。我做错了什么?
我认为你的 xpath 语法有误。你可以试试这个
$rpggeekXML = simplexml_load_file('https://www.rpggeek.com/xmlapi/boardgame/166952?&stats=1');
$rating = $rpggeekXML->xpath('//ratings/average');
$usersrated = $rpggeekXML->xpath('//ratings/usersrated');
使用完整路径查找所需节点:
$rating = $rpggeekXML->xpath( 'boardgame/statistics/ratings/average' );
echo $rating[0];
收集文档中的所有 "average"
个节点:
$rating = $rpggeekXML->xpath( '//average' );
echo $rating[0];