这是用于PHP解析的正确XML格式吗?
以下格式是否适用于XML?我试图使用simplexml_load_file
解析PHP中的文件,但不断收到错误消息,指出'第3行文档末尾有额外内容'。这是用于PHP解析的正确XML格式吗?
下面是XML文件:
<?xml version="1.0"?>
<title>Test File</title>
<data>
<record id="1">
<department>
<name>ACME</name>
<number>5</number>
</dep_name>
<floor>
<name>ACME Floor</name>
<number>5</number>
</floor>
</record>
</data>
的XML文档必须由单个根元素及其后代的。
您的第一个开始标签是<title>
。它有一个文本节点作为其唯一的后代。然后你有一个</title>
标签,它结束根元素,从而结束文档。
<data>
以下的所有内容都是错误的。
您可能希望创建一个新的元素类型作为根(并且包装整个文档,不包括XML声明)。
您还需要更正<department>
或</dep_name>
,因为您似乎已通过创建元素的中途更改了该元素的名称。
您应该通过a validator或lint运行您的代码,因为这会突出显示错误。
好的,所以在这种情况下,只要我创建一个封装了'
@ user1092780:是的,应该可以工作:-) – 2012-02-10 16:36:10
是的,这就是我所说的“你可能想要创建一个新的元素类型作为根。” – Quentin 2012-02-10 16:36:44
,你需要有一个根为您的结构:
<?xml version="1.0"?>
<xml>
<title>Test File</title>
<data>
<record id="1">
<department>
<name>ACME</name>
<number>5</number>
</department>
<floor>
<name>ACME Floor</name>
<number>5</number>
</floor>
</record>
</data>
</xml>
,否则你的XML解析器会认为你的根是<title>
,并且在它所有的信息都包含。
另外,<department>
需要关闭</department>
,这已反映在我的答案。
您打开一个''但是关闭一个'' –
Mikhail
2012-02-10 16:32:12
好的,谢谢! – user1092780 2012-02-10 16:32:56
Aww,不要修改OP,它会混淆读者的其他部分,以及具有相同问题的Google搜索者 – Mikhail 2012-02-10 16:34:14