Java 使用无效字符分析XML
我有一个XML文件,其中包含一些无效字符(XML 1.0不支持字符)。 我想解析该文件,但XML包含无效字符,这是一个异常。Java 使用无效字符分析XML,java,xml-parsing,Java,Xml Parsing,我有一个XML文件,其中包含一些无效字符(XML 1.0不支持字符)。 我想解析该文件,但XML包含无效字符,这是一个异常。 是否有任何可能的方法来解析带有无效字符的XML。或者跳过包含无效字符的节点属性。一种可能的解决方法是将其作为字符串加载,并将无效字符替换为有效字符或标记,以便您知道它在那里。然后正常解析。一种可能的解决方法是将其作为字符串加载,并将无效字符替换为有效字符或标记,以便您知道它在那里。然后正常解析。那么您的意思是在属性中有字符&、(“或”),您可以编写自己的InputStre
是否有任何可能的方法来解析带有无效字符的XML。或者跳过包含无效字符的节点属性。一种可能的解决方法是将其作为字符串加载,并将无效字符替换为有效字符或标记,以便您知道它在那里。然后正常解析。一种可能的解决方法是将其作为字符串加载,并将无效字符替换为有效字符或标记,以便您知道它在那里。然后正常解析。那么您的意思是在属性中有字符&、<、>(“或”),您可以编写自己的InputStream装饰器,并将这些“坏”字符转换为转义字符。InputStream接收此无效数据,并返回有效数据供下一个处理阶段使用:
InputStream yourFancyIllegalCharConverter = new YourFancyIllegalCharConverter( realInputStream );
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader parser = factory.createXMLStreamReader( yourFancyIllegalCharConverter );
你是说属性中有字符&、<、>(“或”)吗?您可以编写自己的InputStream decorator,并将这些“坏”字符转换为转义字符。您的InputStream获取此无效数据并为下一个处理阶段返回有效数据:
InputStream yourFancyIllegalCharConverter = new YourFancyIllegalCharConverter( realInputStream );
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader parser = factory.createXMLStreamReader( yourFancyIllegalCharConverter );
感谢您的回复。XML的大小太大,所以对我来说这是一个复杂的过程。我有一个行号,从中可以得到无效字符,那么,有没有办法修改特定行的内容。感谢您的回复..XML的大小太大,所以对我来说这是一个复杂的过程。我有一个行号,从中可以得到无效字符,那么有没有办法修改特定行的内容。如果您强制解析器使用XML 1.1模式,是否可行,或者将XML prolog更改为将文件声明为1.1 XML(这是一种黑客行为,但也是最容易测试的行为之一)?如果强制解析器使用XML 1.1模式,或者将XML prolog更改为将文件声明为1.1 XML(这是一种黑客行为,但也是最容易测试的行为之一),是否可行?