Java 使用DefaultHandler的SAX解析将所有文本转换为小写
我使用DefaultHandler解析出基于XML的InputStream。它工作正常,但有一个例外。所有字符都转换为小写。 例如,如果我的xml有一个类似于VALUE的元素,那么解析后我看到的是VALUE(而不是VALUE)。 在分析原始大小写(大写而不是小写)时,我如何获得值Java 使用DefaultHandler的SAX解析将所有文本转换为小写,java,xml,parsing,sax,Java,Xml,Parsing,Sax,我使用DefaultHandler解析出基于XML的InputStream。它工作正常,但有一个例外。所有字符都转换为小写。 例如,如果我的xml有一个类似于VALUE的元素,那么解析后我看到的是VALUE(而不是VALUE)。 在分析原始大小写(大写而不是小写)时,我如何获得值 尝试检查实现函数equalsIgnoreCase() 您可能应该使用equals()而不是equalsIgnoreCase()您可以提供有关DefaultHandler的更多信息吗?SAX接口本身对字符大小不起作用,并
尝试检查实现函数
equalsIgnoreCase()
您可能应该使用
equals()
而不是equalsIgnoreCase()
您可以提供有关DefaultHandler
的更多信息吗?SAX接口本身对字符大小不起作用,并且没有标准XML代码应该这样做,因为情况在XML中很重要(不像HTML)。@弗兰西斯,已经更新了我用来解析的代码,您还需要一些其他信息吗?您应该考虑为XML解析器设置的选项。也许有什么东西告诉它什么都要用小写。这就是我配置解析器的方式,我不知道是哪个选项将所有内容转换为小写SAXParserFactory spf=SAXParserFactory.newInstance();设置验证(假);spf.setNamespaceAware(true);SAXParser=spf.newSAXParser();parse(xmlstream,mySaxParser);在characters()中设置一个断点,以查看实际使用的解析器,并查看该解析器的配置。我看不到你张贴的任何明显的东西。
public void endElement(String uri, String name, String qName) throws SAXException {
try {
if(name.equalsIgnoreCase("taga")){
System.err.println("value parsed .. "+_objBuffer.toString());
}
catch (Exception e) {}
}
public void characters(char[] ch, int start, int length) throws SAXException {
try{
_objBuffer.append(ch, start, length);
} catch(Exception e) {}
}