如何使用PHP处理XML内容(具有名称空间)?
我正在尝试使用PHP从XML文档中获取内容 这是我当前获取常规XML元素(标题和URL)的代码如何使用PHP处理XML内容(具有名称空间)?,php,xml,xml-namespaces,Php,Xml,Xml Namespaces,我正在尝试使用PHP从XML文档中获取内容 这是我当前获取常规XML元素(标题和URL)的代码 $xml=simplexml\u加载文件(“courses.xml”)或die(“错误:无法创建对象”); $i=0; 做{ echo$xml->channel->item[$i]->title.,; $i=$i+1; }而($i{''}。查找xmlns:course命名空间定义(如属性)。该值是实际的命名空间课程只是一个别名,用于使XML更易于人类阅读/编写。有几种SimpleXML方法允许您将名称
$xml=simplexml\u加载文件(“courses.xml”)或die(“错误:无法创建对象”);
$i=0;
做{
echo$xml->channel->item[$i]->title.,
;
$i=$i+1;
}而($i<47);
现在,在XML文档中有这样的元素:
<course:image-thumbnail>https://www.edx.org/image.png</course:image-thumbnail>
https://www.edx.org/image.png
我尝试使用PHP调用此元素的内容,方法与调用前面的元素相同,但由于冒号的存在,它似乎不起作用:
我怎样才能做到这一点
我两天前才开始使用PHP和XML,所以这对我来说是全新的
感谢您的帮助。不确定您的
图像缩略图
元素位于何处,但您可以通过以下方式访问它:
$xml->children('courses', true)->{'image-thumbnail'}[0];
如果某个节点包含非法的PHP变量字符(如本例中的hpyhen),则需要使用括号
->{''}
。查找xmlns:course
命名空间定义(如属性)。该值是实际的命名空间<代码>课程只是一个别名,用于使XML更易于人类阅读/编写。有几种SimpleXML方法允许您将名称空间作为参数提供,并且您可以为Xpath表达式注册自己的别名。Duplicate是“SimpleXML\u load\u file namespaces”在Google上的第一个热门搜索结果,所以下次请在询问之前尽可能少地进行研究,谢谢。Meh,谁在乎呢。
$xml->children('courses', true)->{'image-thumbnail'}[0];