我有一个名为po.XML的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<DOCUMENT xmlns="po.xsd">
<PO>
<HEADER>
<PO_CODE/>
<PO_NAME/>
<REFF_NO/>
</HEADER>
<DETAIL>
<CONT>
<NO_CONT/>
<UK_CONT/>
<NO_SEGEL/>
<JNS_CONT/>
<ISO_CODE/>
</CONT>
<DETAIL>
</PO>
</DOCUMENT>
当我使用以下PHP脚本加载文件时:
$XML = simplexml_load_file('po.xml');
我收到以下警告:
警告:simplexml_load_file():po.xml:2:命名空间警告:xmlns:URI po.xsd>在第3行上的C:''examplep''htdocs''inventory''po.php中不是绝对的
警告:simplexml_load_file():位于C:''examplep''htdocs''inventory''po.php的第3行
警告:行>上C:''examplep''htdocs''inventory''po.php中的simplexml_load_file():^;3');
我想将po.XML的XML结构作为字符串进行回显。
此示例xml无效。尝试关闭<DETAIL>
标记。
您的xml 中有两个错误
首先,xmlns="po.xsd"
应该使用绝对路径。
从libxml网页http://www.xmlsoft.org/namespaces.html:
名称空间值必须是一个绝对的URL,但URL不必指向Web上的任何现有资源。
这里已经讨论了这个问题:在php(非绝对)中加载xml时出错
如果你用xmlns="http://www.example.com/po.xsd"
之类的东西移除或修复这个零件,它应该可以工作。
正如Jeff Pucket所提到的,你的标签<DETAIL>
应该关闭
<DETAIL>
<CONT>
<NO_CONT/>
....
</CONT>
</DETAIL>