使用SAX的Android XML解析在“&”之后无法读取标记

时间:2011-08-10 15:56:33

标签: android xml saxparser

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

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

<latitude> 49°38&#039;59&#039;&#039;N </latitude>

在下面的例子中,它只获取“John Levis”部分和“&amp;”之后的字符是损失。

<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;
    }
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

&安培;应编码为&amp; amp;出于xml的目的。你能添加xml文件的标题,以便我们看到编码吗?