Java 使用SAX读取Xml属性值时出错
在使用SAX读取xml属性值时,我有一些奇怪的行为。这似乎是我使用的SAX库中的一个bug,它是系统默认的 Xml非常简单:Java 使用SAX读取Xml属性值时出错,java,xml,sax,Java,Xml,Sax,在使用SAX读取xml属性值时,我有一些奇怪的行为。这似乎是我使用的SAX库中的一个bug,它是系统默认的 Xml非常简单: <?xml version="1.0"?> <VOTABLE version="1.1"> <RESOURCE type="results"> <INFO name="QUERY_STATUS" value="OK" /> <TABLE> <F
<?xml version="1.0"?>
<VOTABLE version="1.1">
<RESOURCE type="results">
<INFO name="QUERY_STATUS" value="OK" />
<TABLE>
<FIELD ID="Reference" ucd="DATA_LINK" datatype="char" arraysize="*" />
<FIELD ID="URN" ucd="HCSS_URN" datatype="char" arraysize="*" />
<FIELD ID="HCSSFileName" ucd="HCSS_FILE_NAME" datatype="char" arraysize="*" />
</TABLE>
</RESOURCE>
</VOTABLE>
例如,我有时在读取属性值时看到:
startElement:Attr:'cCSS_FILE_NAME'来自com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$AttributeProxy
不知何故,文本解析在使用attributes.getValueid时出错了;并且应该是HCSS_文件名
在各种论坛上似乎都有大量的文档表明,内置SAX解析器存在许多bug,例如,我发现了以下内容:
我还读到xml 1.1中可能会出现这样的情况,但事实并非如此,或者在读取长属性值时出现问题,但情况并非如此
我只能考虑尝试配置不同的SAX解析器,例如:
org.apache.xerces.jaxp.SAXParserFactoryImpl
谢谢你的提示。不要使用JDK内置的XML解析器。这是一个bug,最常见的bug表现为属性值损坏。这个bug已经存在多年了,据我所知,它存在于所有JDK版本中。切换到使用Apache的Xerces版本。我不这么认为。你到底有什么问题?你能把它和你给出的例子联系起来吗?我认为从这个例子中可以很清楚地看出。SAX读取的属性值不正确。它返回'cCSS_FILE_NAME',但应返回xml中的内容,例如HCSS_FILE_NAME.OK。对不起,我没有看到你说的领域。您可以发布用于读取XML的代码吗?另一方面,如果要使用SAXParserFactoryImpl,可以使用:System.setPropertyjavax.xml.parsers.SAXParserFactory,org.apache.xerces.jaxp.SAXParserFactoryImpl;