我正在尝试提取'US‘的XPath%,但在为它设置PageViews时遇到了问题。有什么想法吗?
<aws:TrafficData>
<aws:DataUrl type="canonical">jobdiagnosis.com/</aws:DataUrl>
<aws:RankByCountry>
<aws:Country Code="IN">
<aws:Rank>54968</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.46%</aws:PageViews>
<aws:Users>0.46%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="US">
<aws:Rank>703</aws:Rank>
<aws:Contribution>
<aws:PageViews>78.11%</aws:PageViews>
<aws:Users>77.39%</aws:Users>
</aws:Contribution>
</aws:Country>
</aws:RankByCountry>xpath('//Country[Code="US"]//PageViews')发布于 2014-04-10 10:19:46
文档中的所有元素都在某个名称空间中,因此需要为该名称空间URI注册一个前缀,并在引用元素名称的XPath表达式的每个步骤中使用该前缀。注册的前缀不必与文档中使用的前缀匹配,但名称空间URI必须匹配。
假设您已经将XML读取到变量$xml中
$xml->registerXPathNamespace("aws", "http://that.namespace.uri");
$pageviews = $xml->xpath('//aws:Country[@Code="US"]/*/aws:PageViews');发布于 2014-04-10 05:02:22
试试这个:
xpath('//Country[Code="US"]//PageViews')而不是这样:
xpath('//Country[Code="US"]//PageView')更新
试试这个:
xpath('/Country[@Code="US"]/PageViews']发布于 2014-04-10 05:34:50
注意名称空间(aws):
$pageviews = $xml->xpath('//aws:Country[@Code="US"]/Contribution/PageViews');或者使用http://www.php.net/manual/en/simplexmlelement.registerxpathnamespace.php
https://stackoverflow.com/questions/22973726
复制相似问题