【发布时间】:2012-03-14 14:26:41
【问题描述】:
我有一个程序可以运行测试并生成一个包含所有结果的网格视图,以及一个 XML 日志文件。该程序还具有加载日志以复制网格视图的功能。
由于程序在执行时写入日志文件,如果它崩溃,日志文件将缺少结束标记。我仍然希望能够加载这些 XML 文件,因为仍然有很多有价值的数据可以帮助我找出导致崩溃的原因。
我在想也许可以浏览 XML 文件并关闭任何未关闭的 XML 标记,或者可能编写某种“脏”XML 阅读器来假装每个标记都已关闭。关于我可以做什么或应该如何进行的任何想法?
编辑:
<Root>
<Parent>
<Child Name="One">
<Foo>...</Foo>
<Bar>...</Bar>
<Baz>...</Baz>
</Child>
<Child Name="Two">
<Foo>...</Foo>
<Bar>...</Bar>
!-- Crash happens here --!
从此我仍然会期待生产
Child Foo Bar Baz
One ... ... ...
Two ... ... /
【问题讨论】:
-
从技术上讲,带有未闭合标签的 XML 不是 XML,就像 VB 不是 C#一样。
-
您尝试过 XmlReader 吗?这是最(唯一)宽容的阅读方式。
-
此链接可能会有所帮助。 stackoverflow.com/questions/9681084/…
-
您的意思是未闭合的标签,还是您的意思是缺少结束标签?那不是一回事。后者更容易修复。
-
@Mr Lister 编辑了这个问题,因为 XML 在 cmets 中不能很好地显示
标签: c# xml-parsing