Java 如何使用sax解析包含用户注释的xml文件

Java 如何使用sax解析包含用户注释的xml文件,java,xml,saxparser,Java,Xml,Saxparser,我使用sax解析xml文件,它可以工作,但它只是在我感兴趣的标记之间进行部分解析 try { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); DefaultHandler handler = new DefaultHandler() {

我使用sax解析xml文件,它可以工作,但它只是在我感兴趣的标记之间进行部分解析

     try {

            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser saxParser = factory.newSAXParser();

            DefaultHandler handler = new DefaultHandler() {
                boolean bcomm = false;

                @Override
                public void startElement(String uri, String localName,String qName, 
                    Attributes attributes) throws SAXException {
                        if (qName.equalsIgnoreCase("COMMENT")) {
                        bcomm = true;
                        }                           
        }

                public void characters(char ch[], int start, int length) throws SAXException {
                    if (bcomm) {                        
                        review = new String(ch, start, length) + "\n";                        
                        bcomm = false;
                    }
                }
            };
这是我得到的一些输出:

为我的青少年提供卓越的保护

2002年,我买了第一代Windows XP平板电脑,它使用手写笔和书写效果非常好:在使用电子笔的地方,我会做大量的笔记和频繁的培训

这是一个伟大的产品。它

但我想得到:

为我的孩子的Kindle提供极好的保护

我在2002年买了第一代Windows XP平板电脑,它使用手写笔和书写效果非常好:我做大量笔记并经常进行培训,在电脑上使用电子“白板”是一种优势,因为我创建的文档可以立即共享。4年前,当那台机器逐渐衰弱时,我开始从WindowsVista/7、iPad 1/2/3Gen、Android等平台上寻找替代品。。。到目前为止,还没有任何东西支持手写、手写笔的易用性、速度以及轻松共享创建文档的能力。Windows 8和Office 2013在Surface Pro中都大放异彩。操作系统和应用程序都利用了Surface RT的处理能力和额外内存。在OneNote中记笔记是件轻而易举的事——在捕获我写的内容时不会出现延迟或断断续续的情况,而且有一个完整的Outlook客户端再次可用真是太棒了。我很想看看重量是如何随时间变化的——但与我2002年的混合动力车或我的公司给我的2012年“精英”笔记本电脑相比,这个东西很轻。为了Windows 8的易用性,我也给了它4分——虽然我已经使用Windows 8一年多了,在触摸设备上它肯定是一种更好的体验,但与iOS/Android平板电脑相比,它仍然缺乏易用性。与iOS相比,本机Windows应用程序——我经常在iOS上使用的应用程序中,只有两个不在Windows 8历史频道《内战》和《干草日》上;如果不是因为这些,我的iPad3将退役给孩子们

这是一个伟大的产品。这就像是有3个案件内置在一个,因为两个额外的颜色编码带,包括在这个产品。我非常喜欢这个产品


我想这和标点符号有关…请帮忙

将字符数据存储到方法外部声明的缓冲区中

StringBuilder buffer = new StringBuilder();

public void characters(char ch[], int start, int length) throws SAXException {
//   if (bcomm) {   
       buffer.append(new String(ch, start, length));
       bcomm = false;
//   }
}

我刚刚尝试过,但只是将不同的注释附加在一起,但在一个撇号后仍然停止。你在哪里打印缓冲区?在
endElement()
中,尝试从字符中删除bcomm布尔测试。解析器会将文本分解为对
字符的多个调用,因为在第一次调用后将bcomm设置为false,因此不会处理后续调用。Yes public void endElement(字符串uri、字符串localName、字符串qName)抛出SAXException{String theFullT=buffer.toString();System.out.println(thefull);//System.out.println(“End元素:“+qName”);}我已经这样做了,但是现在我得到了所有的xml元素,但我现在只需要一个特定的元素。我得到了src代码,非常感谢您的帮助