Главная » Processing » Работа с файлами XML в Processing

0

XML используется во множестве приложений. Этот отличный формат для структурирования данных, понятный как человеку, так и компьютеру. Я использую те же данные, что и в примере с CSV, но конвертированные в XML. Все это выглядит так:

Как это делается

Первое, что нужно сделать – объявить объект XML. Функция loadXML() загружает в этот объект файл XML.

XML xml;

void setup()

{

xml = loadXML( "processing-websites.xml" ); noLoop();

}

В функции draw() мы пройдемся по документу XML, используя функции getName(), getInt(), getString() и getContent() для извлечения данных из структуры.

void draw()

{

XML[] kids = xml.getChildren("website");

for ( int i = 0; i < kids.length; i++ ) { int id = kids[i].getInt("id");

String url = kids[i].getString("url"); String txt = kids[i].getContent();

println( i + ": " + id + " " + url + " " + txt );

}

}

Когда вы запустите скетч, на консоли вы увидите следующие данные:

0: 1 http://processing.org/ Processing

1: 2 http://processingjs.org/ Processing JS

2: 3 http://www.openprocessing.org/ OpenProcessing

3: 4 http://www.processingghent.org/ Processing Ghent

4: 5 http://www.processingparis.org/ Processing Paris

5: 6 http://www.processingberlin.com/ Processing Berlin

6: 7 http://www.processingcities.org/ Processing Cities

7: 8 http://www.processing-rennes.com/ Processing Rennes

8: 9 http://www.processingbordeaux.org/ Processing Bordeaux

9: 10 http://toxiclibs.org/ Toxiclibs

Как это работает

Метод xml.getChildren("website") который мы использовали в первой строке кода в функции draw() возвращает дочерние узлы под названием website в виде массива объектов XML. С помощью цикла for мы перебираем эти объекты.

Каждый узел website из нашего файла XML имеет два атрибута: id и url. id это целое число, его можно получить методом xml.getInt(). Параметр, которые вам потребуется для этого – строка с именем атрибута XML. Метод xml.getString() аналогичен методу xml.getInt() и используется для извлечения содержимого атрибута url в виде строки.

Метод xml.getContent() используется для получения данных между открывающим том (<website>) и завершающим тэгом (</website>) XML узла. Этот метод возвращает строку, то есть переменную типа String.

Источник: Ян Вантомм, Processing 2: креативное программирование, перевод с английского Александры Мишутиной, Published by Packt Publishing Ltd., 2012, BIRMINGHAM – MUMBAI.

По теме:

  • Комментарии