繁体   English   中英

使用 Xpath 从带有命名空间的 XML 获取数据

[英]Using Xpath to get Data from XML with Namespace

我一直在用这个头撞砖墙,所以非常感谢一些帮助。 我第一次使用 xpath 并让它完成我需要的大部分事情而没有任何问题。

这是一个示例片段:

 $urlw = "http://www.wahanda.com/rss/mobdeal.xml";
 $wf = gzopen ($urlw, 'r');
 $wxml = new SimpleXMLElement (fread ($wf, 1000000));

 foreach($wxml->xpath ('/rss/channel/item') as $entry) 
 {
    $price = $entry->price;
    echo $price . "<br/>"; 
 }

我的问题是我当前使用的提要具有命名空间声明,因此“价格”节点实际上是“w:价格”。 我想使用的一些节点以“w:”为前缀,而其他节点则没有。 因此,我的代码无法获取前缀节点的内容。 有人可以告诉我如何解决这个问题吗? 通过阅读,我添加了以下内容:

 $wxml->registerXPathNamespace('w', 'http://www.wahanda.com/ns/1.0');

但仍然不确定从这里开始我需要做什么。

非常感谢您的帮助。

你在正确的轨道上。 您需要做的就是使用命名空间编写一个 xpath 查询。 就像是:

$wxml->xpath ('//w:price')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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