我在将XML文档反序列化为对象时收到错误消息。 怎么解决这个问题?
XML文档(5,14)中存在错误
这是XML文档:
<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Khaled</FirstName>
<LastName>Marouf</LastName>
</Customer><?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Faisal</FirstName>
<LastName>Damaj</LastName>
</Customer><?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Lara</FirstName>
<LastName>Khalil</LastName>
</Customer>
答案 0 :(得分:10)
您的XML文档实际上是三个文档。例如,有效的XML文档必须只有一个根节点。此外,XML声明在文档中无效。
这是有效的XML(首先是XML声明,一个根元素):
<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Khaled</FirstName>
<LastName>Marouf</LastName>
</Customer>
这不是有效的XML(多个根元素,文档中的xml声明):
<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Khaled</FirstName>
<LastName>Marouf</LastName>
</Customer><?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Faisal</FirstName>
<LastName>Damaj</LastName>
</Customer>
答案 1 :(得分:8)
要展开Fredrik Mörk's answer,线索在错误消息中:(5, 14)
指的是解析器认为问题所在的行号和列号。这里指出第二个XML声明,如上所述,不允许这样做。
答案 2 :(得分:0)
为您的Customer元素添加根元素。
答案 3 :(得分:0)
试试这个......
<?xml version="1.0"?>
<ArrayOfCustomer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Customer>
<FirstName>Khaled</FirstName>
<LastName>Marouf</LastName>
</Customer>
<Customer>
<FirstName>Faisal</FirstName>
<LastName>Damaj</LastName>
</Customer>
<Customer>
<FirstName>Lara</FirstName>
<LastName>Khalil</LastName>
</Customer>
</ArrayOfCustomer>