gpt4 book ai didi

java - XMLStreamException : Parse error

转载 作者:数据小太阳 更新时间:2023-10-29 02:08:14 28 4
gpt4 key购买 nike

我有一个在 apache tomcat 6 上使用 java 5 解析 xml 文件的进程。因为,我在 java 7 中编译并执行 join apache tomcat 7,我收到以下错误:

Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,60]Message: Invalid encoding name "ISO8859-1".    at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.setInputSource(XMLStreamReaderImpl.java:219)    at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.(XMLStreamReaderImpl.java:189)    at com.sun.xml.internal.stream.XMLInputFactoryImpl.getXMLStreamReaderImpl(XMLInputFactoryImpl.java:262)    at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:129)    at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLEventReader(XMLInputFactoryImpl.java:78)    at org.simpleframework.xml.stream.StreamProvider.provide(StreamProvider.java:66)    at org.simpleframework.xml.stream.NodeBuilder.read(NodeBuilder.java:58)    at org.simpleframework.xml.core.Persister.read(Persister.java:543)    at org.simpleframework.xml.core.Persister.read(Persister.java:444)

这里是使用的 xml 片段:

?xml version="1.0" encoding="ISO8859-1" standalone="no" ?

如果我用 UTF-8 替换 ISO8859-1,解析过程可以正常工作,但我不适合。

我使用的库是simple-xml-2.1.8.jar

有人注意到我,ISO8859-1 是错误的内容类型。 ISO-8859-1 是正确的。正如我提到的,很难要求“制作人”更正他们的文件。我想管理我的应用程序中的问题。

最佳答案

从简单 XML 获取 Xerces XMLReader 实例并设置

reader.setFeature("http://apache.org/xml/features/allow-java-encodings", true)

在解析 XML 之前。

由于 ISO8859-1 在 Java 中“有效”,因此这可能有效。

Xerces 支持的“特性”列表可用 here

或者,在处理 XML 之前,在 encoding="ISO8859-1" 上使用一个很好的旧正则表达式来修复 XML 应该可以解决问题。

关于java - XMLStreamException : Parse error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882698/

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