Разобрать XML-файл на BlackBerry

Я хочу знать, как анализировать XML-данные на BlackBerry.

Я где-то читал, что JSON - хороший метод для анализа XML-данных.

Есть ли какие-либо руководства по синтаксическому анализу XML-данных с помощью JSON или любого другого механизма?


person MohammedYakub Moriswala    schedule 03.05.2010    source источник
comment
JSON не является анализатором XML. Это другой формат. Это не имеет ничего общего с XML.   -  person Wouter Lievens    schedule 03.12.2010


Ответы (3)


Разбор XML в Blackberry

Простой API для XML (SAX) был разработан членами общедоступного списка рассылки (XML-DEV). Он предоставляет подход к синтаксическому анализу XML на основе событий. Это означает, что вместо перехода от узла к узлу он переходит от события к событию. SAX - это интерфейс, управляемый событиями. События включают тег XML, обнаружение ошибок и т. Д., J2ME SAX - см. BlackBerry / J2ME - SAX-синтаксический анализ коллекции объектов с атрибутами

XML-синтаксический анализатор - оптимален для приложений, которым требуется быстрый и небольшой XML-синтаксический анализатор. Его следует использовать, когда весь процесс должен выполняться быстро и эффективно для ввода элементов kXML - парсер извлечения J2ME - см. Лучший подход к созданию XML в Blackberry

Разбор XML с помощью JSON

Стандарт Blackberry для синтаксического анализа JSON: JSON ME

Понятия не имею ... JSON может быть представлен и транспортирован как XML, но не наоборот.

XML (Extensible Markup Language) - это набор правил для электронного кодирования документов. Он определен в спецификации XML 1.0, разработанной консорциумом W3C, и в нескольких других связанных спецификациях, которые являются бесплатными открытыми стандартами.

Пример XML:

<?xml version="1.0" encoding='UTF-8'?>
<painting>
  <img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
  <caption>This is Raphael's "Foligno" Madonna, painted in
    <date>1511</date>–<date>1512</date>.
  </caption>
</painting>

JSON (аббревиатура от JavaScript Object Notation) - это облегченный текстовый открытый стандарт, разработанный для удобочитаемого обмена данными. Он является производным от языка программирования JavaScript для представления простых структур данных и ассоциативных массивов, называемых объектами («O» в «JSON»). Несмотря на свою связь с JavaScript, он не зависит от языка, а синтаксические анализаторы доступны практически для каждого языка программирования.

Пример JSON:

{
     "firstName": "John",
     "lastName": "Smith",
     "age": 25,
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021"
     },
     "phoneNumber": [
         { "type": "home", "number": "212 555-1234" },
         { "type": "fax", "number": "646 555-4567" }
     ]
 }

В основном, если ваш XML является сильным эквивалентом JSON, например:

<Person>
  <firstName>John</firstName>
  <lastName>Smith</lastName>
  <age>25</age>
  <address>
    <streetAddress>21 2nd Street</streetAddress>
    <city>New York</city>
    <state>NY</state>
    <postalCode>10021</postalCode>
  </address>
  <phoneNumber type="home">212 555-1234</phoneNumber>
  <phoneNumber type="fax">646 555-4567</phoneNumber>
</Person>

есть возможность разобрать такой XML с помощью JSON.

person Maksym Gontar    schedule 04.05.2010

Парсинг обычно выполняется с использованием сторонней библиотеки, которую можно загрузить в проект. Если вы используете XML, я использовал библиотеку под названием парсер kXML. Настройка может быть сложной задачей, но инструкции по настройке приведены здесь -

http://supportforums.blackberry.com/t5/Java-Development/Tutorial-How-To-Use-3rd-Party-Libraries-in-your-Applications/mp/177543

http://www.craigagreen.com/index.php?/Blog/blackberry-and-net-webservice-tutorial-part-1.html

Использование kXML довольно просто. В этом руководстве объясняется, как анализировать файл XML -

http://www.roseindia.net/j2me/kxml/j2me-xml-parser.shtml

Изменить: Упс, первый учебник в следующем посте содержит довольно исчерпывающий обзор синтаксического анализа xml на kxml2. Так что мой пост вроде как лишний.

person Tejaswi Yerukalapudi    schedule 04.05.2010

Эта ссылка взята с сайта Blackberry: http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800599/How_To_-_Use_the_XML_Parser.html?nodeid=820554&vernum=0

Я внес следующие изменения, чтобы он заработал (Да ... сайт BB dev иногда довольно раздражает ...)

в методе updateField () - обязательно добавьте поток пользовательского интерфейса, иначе никаких изменений не произойдет.

 UiApplication.getUiApplication().invokeLater(new Runnable() 
    {
        public void run()
        {
             String title="Title";
                _screen.add(new RichTextField(node+" : "+element));

                if(node.equals(title))
                {
                    _screen.add(new SeparatorField());
                }
        }
    });

Также, если вы хотите читать свой XML-файл локально (например, в вашей папке) - вам, очевидно, не нужно соединение localhost с портом. В любом случае, когда я запускал его с помощью local: //test.xml, я продолжал получать ошибку подключения. Пошел прыгать по форуму и нашел это маленькое решение. (Да, мой .xml файл называется сумасшедшим домом). Ну и «test.xml.XMLDemoScreen» - это имя пакета и имя класса.

Class cl = Class.forName("test.xml.XMLDemoScreen");
InputStream in = cl.getResourceAsStream("/madhouse.xml");
doc = docBuilder.parse(in);

Надеюсь, это поможет! : D

person shecodesthings    schedule 22.06.2012