C#如何解析非标准的xml

dai*_*dan 2 c# parsing

我有很多需要解析的长文档.文档格式类似于XML,但实际上不是xml.

这是一个例子:

<DOC>
    <TEXT>it's the content P&G</TEXT>
</DOC> 
<DOC>
    <TEXT>it's antoher</TEXT>
</DOC>
Run Code Online (Sandbox Code Playgroud)

请注意,有多个根标签 - <DOC>,实体&应该是&amp;xml.

因此,上述文件不是标准的xml.

我可以使用它XmlDocument来解析文件,还是应该编写自己的解析器?

Ode*_*ded 6

你所说的有点不正确 - 这是"非标准XML".该文档不是 XML.期.

不能使用XmlDocument或任何其他XML解析器将其解析为完整文档.

在尝试使用XML解析器解析之前,需要确保拥有有效的XML.

所以 - 在这种情况下,要么在根元素中扭曲文档,要么将其分解为多个文档.在任何一种情况下,您都需要确保正确编码特殊字符(引号,&符号等).

oakio 的答案通过将文档视为XML片段来帮助您解决问题,但这仍然无助于无效内容,例如未转义的&符号.