我有一些数据(由遗留应用程序生成),我知道这些数据是无效的XML,例如:
<document>
<dossier>
<answers>
<answer>Ref=some <text> here</answer>
</answers>
</dossier>
</document>
我想将它加载到XmlDocument中,并且它当前失败了,因为它正在处理“&lt; text&gt;”作为标签。请注意,这只是一个例子。一般问题是答案可以包含任意顺序的非转义尖括号,其中包含不同的字符。
我有哪些选择?
答案 0 :(得分:0)
您可以使用Regex作为示例,并在使用XmlDocument解析它之前转义<answer> </answer>
内的内容。
与<answer>(.+?)</answer>
匹配,并使用转义版本替换捕获的组。
答案 1 :(得分:0)
使用HTMLAgilityPack。这可以处理无效/格式错误的标记,它做得非常好。
答案 2 :(得分:0)
最简单的方法是将有问题的XML包装在CData部分中。这样,生成的XML文档可能如下所示:
<wrapper>
<![CDATA[
<document>
<dossier>
<answers>
<answer>Ref=some <text> here</answer>
</answers>
</dossier>
</document>
]]>
</wrapper>
有关CData的更多详细信息,请访问here。