Синтаксический анализ Android Android с SAX не может прочитать после знака "&" - PullRequest
1 голос
/ 10 августа 2011

В моем приложении для Android я читаю XML-файлы и сохраняю эти данные в базе данных SQLite.Когда я читаю запись, состоящую из отметки «&», она не занимает весь текст.

Например, когда я читаю значение в следующем теге, он читает только 49 ° 38.Другая часть - потеря.

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

в следующем случае требуется только получить часть «Джон Левис», а символы после «&» - потеря.

<name> John Levis & sons</name>

У кого-нибудь есть идея прочитать все значение ???

Вот как я беру значение из класса XML-обработчика, который расширяет DefaultHandler. [Это значение принимается в методе 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 ]

1 голос
/ 10 августа 2011

Обратный вызов символов () в SAX позволяет разбить текстовый узел на столько маленьких кусочков, сколько ему нужно. Вам следует их накапливать и обрабатывать, когда вы дойдете до конца текста (обычно это событие endElement, возможно, событие startElement в смешанном контенте). Многие парсеры разбивают текст, когда попадают на ссылку на сущность, но им разрешается разбивать его где угодно.

0 голосов
/ 10 августа 2011

& должно быть закодировано как & amp; для целей XML. Не могли бы вы добавить заголовок вашего XML-файла, чтобы мы могли видеть кодировку?

...