以下格式是否适用于XML?我正在尝试使用simplexml_load_file
在PHP中解析文件,但仍然收到一条错误,指出第3行文档末尾有“额外内容”。
这是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>
答案 0 :(得分:6)
XML文档必须由单个根元素及其后代组成。
您的第一个开始标记为<title>
。它有一个文本节点作为唯一的后代。然后,您有一个</title>
标记,用于结束根元素,从而结束文档。
<data>
及其后面的所有内容都是错误的。
您可能希望创建一个新的元素类型作为根(并用它包装整个文档,不包括XML声明)。
您还需要更正<department>
或</dep_name>
,因为您似乎已经在创建它的过程中改变了元素的名称。
您应该通过a validator或lint运行代码,因为这会突出显示错误。
答案 1 :(得分:2)
你需要为你的结构设一个根:
<?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解析器会认为你的root是<title>
,而且你的所有信息都包含在其中。
此外,<department>
需要</department>
关闭,这已反映在我的回答中。