Просмотр полной версии : Как Парсить .xml
areostar
02.10.2011, 15:21
Имеется такой вот xml документ:
<?xml version="1.0" encoding="UTF-8"?>
<collection_menu>
<category>Главная</category>
<category>Торговля</category>
<item>п.1</item>
<item>п.2</item>
<category>Услуги</category>
<item>п.1</item>
<item>п.2</item>
</collection_menu>
Как его просто считать я знаю! а вот как вынуть от туда подпункты(item) из определённой категории?
Как его просто считать я знаю
что ты подразумеваешь под считывать? я так понимаю если ты считываешь его то ты уже его парсишь
Получит содержимое всех тэгов item для вашего xml файла можно вот так:
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onLoadedXML);
urlLoader.load(new URLRequest("your_xml_file.xml"));
function onLoadedXML(event:Event):void
{
var xml:XML = new XML(event.target.data);
var len:int = xml.item.length();
for (var i:int = 0; i < len; i++)
{
trace(xml.item[i]);
}
}
Структура вашего XML файла не правильная. Вот так будет правильно:
<?xml version="1.0" encoding="UTF-8"?>
<collection_menu>
<category name="Главная"/>
<category name="Торговля">
<item>п.1</item>
<item>п.2</item>
</category>
<category name="Услуги">
<item>п.1</item>
<item>п.2</item>
</category>
</collection_menu>
И тогда код будет таким:
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onLoadedXML);
urlLoader.load(new URLRequest("your_xml_file.xml"));
function onLoadedXML(event:Event):void
{
var xml:XML = new XML(event.target.data);
var numOfCategories:int = xml.category.length();
var numOfItems:int;
for (var i:int = 0; i < numOfCategories; i++)
{
trace("Элементы категории:", xml.category[i].@name);
numOfItems = xml.category[i].item.length();
for (var j:int = 0; j < numOfItems; j++)
{
trace(xml.category[i].item[j]);
}
}
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.