gpt4 book ai didi

java - 使用 XStream 解析器解析无效的 XML 字符 - Java

转载 作者:行者123 更新时间:2023-12-02 05:45:29 24 4
gpt4 key购买 nike

我有一个经典的 XML 验证问题 -我需要解析传入的 XML(来自其他应用程序 - 不使用正确的 XML 格式化程序),其中数据中嵌入了损坏的标签和 XML 特殊字符(但未使用 CDData 标签进行换行)

我使用简单的 XStream 解析器来解码传入流,因为它是简单的序列化而不是严格的解析器。对于特殊字符,它会抛出 ConverterException 并且不会解析文件。

我想知道是否有其他解析器可用于解析无效的 XML 文件(特殊字符等)我们无法控制作为输入流发送的内容,并且作为审核应用程序的一部分,需要从传入文件中读取尽可能多的良好记录。

是否有更好的解析选项可用,或者我是否需要编写自定义解析器来解析这些文件?我正在使用 Spring Batch 进行批处理,并使用 XStream(1.x) 来解析 XML 文件。

AS XSD 验证失败,我想知道是否值得探索其他解析器/自定义解析器选项..

寻求您对 XML 验证的专家意见..

最佳答案

我理解您试图充分利用困惑的输入。不幸的是,由于该输入的格式似乎没有明确的规范,因此您实际上只能靠自己了。一种方法可能是首先将输入文件转换为有效的 XML,这基本上就是您通过编写自己的解析器所做的事情。在 Java 中,您可以通过使用自己的专用代码读取和解析文件并输出标准 Java XML 接口(interface)(SAX、DOM 等)来实现此目的。但是,根据您的知识,使用专门从事文本解析的不同语言可能会更快。

我的经验是,唯一真正的长期解决方案是强制数据提供者提供有效的 XML。这样做的原因是,尽管你可以尽最大努力从无效数据中提取出有效数据,但始终存在你的解释错误的风险。半有效的数据通常比没有数据更糟糕。恕我直言,最好将正确数据的责任留给供应商。

关于java - 使用 XStream 解析器解析无效的 XML 字符 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24106623/

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