【问题标题】:android saxparser truncates xml tag contentandroid saxparser 截断 xml 标签内容
【发布时间】:2012-07-03 12:02:51
【问题描述】:

我正在使用 saxparser 从文件中获取 xml 标记内容。对于非长数据 xml,一切正常。但是,当到达某个位置时,characters() 事件收到截断的 ch[] 并被触发两次。例如 1234567890 被接收两次并且值被截断,如下例所示。如何清除char数组或内存?

id  1234567890
name myName1
id  1234567890
name myName2
...
(error)
id 1234567
id 890
name myName3

代码:

private StringBuffer buf = new StringBuffer(2048);

            @Override
            public void characters(char ch[], int start, int length) throws SAXException {  

            if(this.v_Id){

                buf.append(ch, start, length);

                myParsedXMLDataSet.setId(buf.toString());

                Log.d("id", buf.toString());

                buf.delete(0, buf.length());

            }

【问题讨论】:

    标签: java android xml eclipse saxparser


    【解决方案1】:

    characters() 允许多次调用同一元素 (see documentation)。你不应该假设它只会被调用一次,即使大多数时候都是这样。每次调用characters() 时追加到缓冲区,然后在调用endElement() 时存储值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 2013-02-04
      • 2012-03-12
      • 1970-01-01
      • 2018-04-20
      • 2021-11-18
      • 2017-06-15
      相关资源
      最近更新 更多