我有一些我需要处理的供应商的无效XML。这是一个例子:
<a>foo</a>
<b>bar</b>
<c>foobar is < $15</c>
所以,我们遇到了一些问题。首先,没有根文档。我通过添加根文档克服了这个问题。没问题。第二个也是更困难的问题是不足象征。我只能对整个事物进行编码,但它会对XML标记进行编码。是否有一个库或简单的方法在那里处理这个?我真的不想重新发明轮子,因为我确信有数百人像这样处理过“准XML”。感谢任何帮助。
答案 0 :(得分:1)
我会逐行读取文件并使用正则表达式来获取节点之间的值。您的示例没有嵌套元素,因此这很容易。在逐行阅读时,您可以替换编码内部值。命名的捕获组(?。*?)将节点之间的所有内容都放入名为xml的组中。
var regex = "<.*?>(?<xml>.*?)</.*?>"
var badXML = Regex.Match(line, regex , RegexOptions.IgnoreCase).Groups["xml"].Value;