Разработка Blackberry: как получить XMLReader SAXParser - PullRequest
1 голос
/ 24 августа 2010

Я пытаюсь перенести мой работающий анализатор XML для Android на Blackberry, но набор функций Java не так богат?Я не хотел писать два парсера.

Следующий код дает «Метод getXMLReader () не определен для типа SAXParser»:

SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser        sp  = spf.newSAXParser();
XMLReader        xr  = sp.getXMLReader();

Я только что вышел изудачи здесь?

Это правда, я пытаюсь использовать org.xml.sax .Я прочитал все обсуждения разбора XML, которые я могу там найти.Интересно, могу ли я это сделать?Должен ли я использовать org.kxml2 вместо этого, потому что org.xml.sax не имеет смысла в земле BlackBerry?

Спасибо за любой совет!

Russ

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Вам не нужно использовать метод getXmlReader().

Теперь, когда у вас есть SAXParser, используйте его для анализа документа или потока.

SaxParserFactory spf = SaxParerFacter.newInstance();
SAXParser parser = spf.newSAXParser();

Откройте ваш поток или файл и позвоните и назначьте его переменной. Давайте назовем наши input.

parser.parse(input, handler)

В файле обработчика будут реализованы все обратные вызовы для обработки событий, с которыми сталкивается анализатор.

Я нашел это объяснение SAX весьма полезным.

0 голосов
/ 24 августа 2010

Я отвечу на это, хотя подозреваю, что есть другие, кто знает лучше.

Моя оценка BlackBerry такова, что она очень бедна в своем наборе API.Таким образом, синтаксический анализатор SAX XML недоступен, как на Android.Хорошо, это круто.Он старше и с "меньшего" времени.

Хуже того, кажется очень сложным даже добавить стороннюю библиотеку в приложение BlackBerry.Я следил за различными постами там и не смог убедительно включить свой собственный «сторонний» JAR в проект BlackBerry, несмотря на коллективную мудрость ряда веб-страниц по этой теме.

Я думал тогда написать свойсобственный механизм синтаксического анализа для замены SAXParser.parse () .Насколько это может быть трудно, поскольку мои ожидания в отношении этого по-детски просты?

Действительно, очень тяжело, поскольку кажется, что поддержка JavaME для java.lang.Class также обеднена;он не поддерживает важные методы отражения, такие как getDeclaredMethods () для использования при создании движка (в который я, естественно, хотел подключить свой существующий обработчик XML-анализатора).

Увы,это заставляет меня задуматься о том, на что способны приложения BlackBerry?Вероятно, я даю этому миру немного времени, но мне хватило пары дней, чтобы перейти с нуля к разбору XML-текстов из Интернета на Android, поэтому я ожидал, что и здесь это будет очень легко.

Пожалуйста, не стесняйтесь измельчать мой ответ.Если вы можете и сделаете, особенно если вы добавите реальный, это, несомненно, принесет большую пользу другим новичкам в разработке BlackBerry, в том числе и мне позже, когда я вернусь к проблеме (так что вместо этого я могу избежать грубой форсировки через поток XMLчистого разбора).

...