krast
Full Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору ShIvADeSt Значит так, существует две самые распространенные методики парсинга xml-файлов. Это во-первых, DOM-парсинг, то есть когда в памяти строится дерево xml-элементов со всеми атрибутами, данными. оч удобно когда нужно постоянно перемещаться между элементами, но память жрет, и построение дерева занимает какое-то время. Самый известный парсер - это COM-объект от Microsoft (в Delphi работа с ним инкапсулируется в модуле msxml). Второй способ - это потоковый способ обработки (SAX), там используется событийная методика, то есть когда парсер нашел новый элемент - возникает событие, когда закрывается элемент - тоже событие, ну итд. Оч быстрый метод, но однопроходный, то есть когда обработан весь файл, то вернутся на середину и там что-то считать нельзя. в Delphi с ним не работал, но в Perl использовал его (XML::Parser::ReplSAX), оч понравилось. Да, кстати, есть еще один вариант парсинга xml - вручную. насчет DOM. Сначала получаем ссылку на интерфейс IXMLDOMElement. Потом загружаем в него документ методом Load. Основный интерфейсом при работе станет IXMLDOMElement (реализующий отдельный элемент). Получаем ссылку на корневой элемент: XMLRootNode := XMLTree.documentElement, ну а потом все легко. Можно узнать имя элемента: XMLNode.nodevalue, его текст: XMLNode.text, узнать атрибуты: XMLNode.attributes.getNamedItem('nameattr').nodeValue; перечислить всех детей: Цитата: if XMLNode.hasChildNodes then for i := 0 to XMLNode.childNodes.length - 1 do begin CurrXMLElement := XMLNode.childNodes.item[i] as IXMLDOMElement; { что-то сделать с дитем CurrXMLElement } end; | Ссылки: 1. http://www.g299792458.boom.ru/articles/xml.html (в статье работа ведется с IXMLElement2, но разницы немного) 2. http://www.delphikingdom.com/asp/itemq.asp?mode=1&itemid=429 (хорошая подборка статей на Королевстве Delphi) Примеры У меня все залито в проекты - выцеплять неохота. Но к книге Марко Канту шли примеры по работе с XML -если будет желание - то вышлю, но завтра, так как они у меня дома. Добавлено Еще ссылка: По самой сути XML можно также прочитать на rsdn, так сказать вводная: http://rsdn.ru/article/xml/xml-1.xml | Всего записей: 442 | Зарегистр. 15-09-2003 | Отправлено: 09:35 17-06-2004 | Исправлено: krast, 09:38 17-06-2004 |
|