gpt4 book ai didi

java - Android 上的 SAX 被多次调用相同的数据但有偏移

转载 作者:行者123 更新时间:2023-11-30 11:57:05 25 4
gpt4 key购买 nike

我正在尝试使用 SAX 和 Android 解析 xml 文件,问题是函数 characters(...) 被多次调用,看起来是相同的数据,只是偏移了几个字符。

从下面的输出中可以看出,第一次使用“\talabama”调用它,第二次使用“labama”调用它。我不确定为什么要这样做,但如果有人能提供帮助那就太棒了。

XML 输入:

<?xml version="1.0"  encoding="utf-8"?>
<dir><name>.</name>
<dir><name>alabama</name>
<dir><name>sub_dir_name</name>
<file><name>file_name.kml</name></file>
</dir>
</dir>
</dir>

字符输出(...):

10-27 23:04:47.033: DEBUG/LocationHandler(10299):     
10-27 23:04:49.000: DEBUG/LocationHandler(10299): alabama
10-27 23:04:51.835: DEBUG/LocationHandler(10299): labama
10-27 23:04:52.129: DEBUG/LocationHandler(10299): labama abama
10-27 23:04:52.408: DEBUG/LocationHandler(10299): labama abamasub_dir_name
10-27 23:04:52.519: DEBUG/LocationHandler(10299): ub_dir_name
10-27 23:04:52.649: DEBUG/LocationHandler(10299): ub_dir_name _dir_name
10-27 23:04:52.809: DEBUG/LocationHandler(10299): ub_dir_name _dir_namefile_name.kml
10-27 23:04:52.989: DEBUG/LocationHandler(10299): ile_name.kml
10-27 23:04:53.158: DEBUG/LocationHandler(10299): ile_name.kml le_name.kml
10-27 23:04:53.358: DEBUG/LocationHandler(10299): le_name.kml
10-27 23:04:53.529: DEBUG/LocationHandler(10299): le_name.kml le_name.kml
10-27 23:04:53.698: DEBUG/LocationHandler(10299): le_name.kml

处理程序覆盖:

@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException
{
}

@Override
public void endElement(String uri, String localName, String qName)
throws SAXException
{
_currentElementValue = "";
}

@Override
public void characters(char[] ch, int start, int length) throws SAXException
{
_currentElementValue += new String(ch);

Log.d(TAG, _currentElementValue);
}

最佳答案

我在你的代码中看到一个明显的问题,在 characters() 方法中,你不能盲目地只用 char 数组创建一个字符串。它应该像下面这样:



public void characters(char[] ch, int start, int length) throws SAXException
{
_currentElementValue += new String(ch, start, length);

Log.d(TAG, _currentElementValue);
}

您可能想详细了解 SAX 解析的工作原理。

关于java - Android 上的 SAX 被多次调用相同的数据但有偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4038509/

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