gpt4 book ai didi

c# - 在格式略有错误的 XML 上使用 C# 的 XmlReader

转载 作者:数据小太阳 更新时间:2023-10-29 01:43:36 25 4
gpt4 key购买 nike

我正在尝试在大量 XML 文件上使用 C# 的 XmlReader,它们的格式都正确,除了一些选定的文件(不幸的是,我无法更改它们,因为它会破坏很多其他代码)。

错误仅来自这些侮辱性 XML 文件的一个特定部分,可以跳过它们,但我不想停止阅读 XML 文件的其余部分。

坏的部分是这样的:

 <InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>

所以真的,如果我可以忽略无效标签,或者忽略管道符号,那我就没问题了。

当我看到名称“ErrorsHere”时尝试使用 XmlReader.Skip() 不起作用,显然它已经提前读取并抛出异常。

TLDR:如何跳过以便使用 XmlReader 读取上面的 XML 文件?

编辑:

有些人建议只替换“|”符号,但 XmlReader 的想法是不加载整个文件,而只遍历你想要的部分,因为我直接从文件中读取我无法负担整个读取文件,替换“|”的所有实例然后再读一遍:).

最佳答案

我过去曾对此进行过一些试验。

一般来说,输入必须是格式正确的。当基本的 XML 规则被破坏时,XmlReader 将进入不可恢复的错误状态。避免模​​式验证很容易,但这与此处无关。

您唯一的选择是清理输入,这可以通过流方式(自定义 Stream 或 TextReader)完成,但这将需要一种简单的解析形式。如果您在有效位置没有管道符号,那很容易。

关于c# - 在格式略有错误的 XML 上使用 C# 的 XmlReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6648948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com