我试图查询使用命名空间的
XML文档.我已经成功使用没有名称空间的xpath,但没有名称空间的结果.这是我尝试的一个基本例子.我稍微压缩了一下,因此我的样本中可能存在小问题,这可能会减损我的实际问题.
示例XML:
<?xml version="1.0"?>
<sf:page>
<sf:section>
<sf:layout>
<sf:p>My Content</sf:p>
</sf:layout>
</sf:section>
</sf:page>
示例PHP代码:
<?php
$path = "index.xml";
$content = file_get_contents($path);
$dom = new DOMDocument($content);
$xpath = new DOMXPath($dom);
$xpath->registerNamespace('sf', "http://developer.apple.com/namespaces/sf");
$p = $xpath->query("//sf:p", $dom);
我的结果是“p”是一个“DOMNodeList对象()”,它的长度是0.任何帮助将不胜感激.
最佳答案 DOMDocument构造函数不接受内容,而是版本和编码.
代替:
$path = "index.xml";
$content = file_get_contents($path);
$dom = new DOMDocument($content);
试试这个:
$path = "index.xml";
$doc = new DOMDocument();
$doc->load($path);