【问题标题】:Android XML parsing with SAX can't read after "&" mark使用 SAX 解析 Android XML 在“&”标记后无法读取
【发布时间】:2011-08-10 15:56:33
【问题描述】:

在我的 android 应用程序中,我读取 xml 文件并将这些数据存储在 SQLite 数据库中。 当我阅读包含“&”标记的记录时,它不会占用整个文本。

例如,当我读取以下标签中的值时,它仅读取 49°38。另一部分是损失。

<latitude> 49°38'59''N </latitude>

在下面的例子中只需要得到“John Levis”部分,“&”后面的字符是loss。

<name> John Levis & sons</name>

有没有人有想法阅读整个价值???

这就是我从扩展 DefaultHandler 的 XML 处理程序类中获取值的方式。[此值采用 endElement 方法]

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

    if(currentElement)
    {
        currentValue = new String(ch, start, length);
        currentElement = false;
    }
}

【问题讨论】:

标签: android xml saxparser


【解决方案1】:

SAX 中的 characters() 回调允许将文本节点拆分为任意数量的小块。您应该累积它们并在到达文本结尾时处理它们(通常是 endElement 事件,可能是混合内容中的 startElement 事件)。许多解析器在遇到实体引用时会拆分文本,但它们可以在任何地方拆分。

【讨论】:

    【解决方案2】:

    & 应该被编码为 &出于 xml 的目的。您能否添加您的 xml 文件的标头以便我们查看编码?

    【讨论】:

    • ,这是xml文件的头部
    • 您是否在默认处理程序中使用过 logcat 来准确查看数据库中的内容?
    • 感谢 AlaskanProgrammer... 我找到了一种使用字符串缓冲区解析 XML 的方法。马修给了妈妈……!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2011-04-30
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多