Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как такое пропарсить? 
:(
    Опции темы
DYUMON
Дата 20.11.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 17.6.2006
Где: Новосибирск

Репутация: нет
Всего: 3



Пишу импортер из xml файла. раньше не работал с xml файлами. файл легко парсится с использованием компонентов баз данных. но мне надо содержимое вывести в listview. 
пробовал simpleXML и стандартный парсер с вкладки internet результат 0.
пример файла 

Код

<?xml version="1.0" encoding="windows-1251" standalone="yes"?>  <DATAPACKET Version="2.0"><METADATA><FIELDS><FIELD attrname="CLNT_LIST_CODE" fieldtype="i4"/><FIELD attrname="CLNT_LIST_NAME" fieldtype="string" WIDTH="80"/><FIELD attrname="PLST_HEAD_DATE" fieldtype="date"/><FIELD attrname="PROD_LIST_CODE" fieldtype="i4"/><FIELD attrname="PROD_LIST_NUMB" fieldtype="i4"/><FIELD attrname="PROD_LIST_NAME" fieldtype="string" WIDTH="80"/><FIELD attrname="PRSV_LIST_NAME" fieldtype="string" WIDTH="80"/><FIELD attrname="PGRP_LIST_NAME" fieldtype="string" WIDTH="80"/><FIELD attrname="PLST_LINE_PACK" fieldtype="string" WIDTH="30"/><FIELD attrname="PLST_LINE_DATE" fieldtype="date"/><FIELD attrname="PLST_LINE_PRC1" fieldtype="fixedFMT" DECIMALS="2" WIDTH="15"/><FIELD attrname="USL_PRICE" fieldtype="string" WIDTH="30"/><FIELD attrname="QNTY" fieldtype="i4"/></FIELDS><PARAMS LCID="0"/></METADATA><ROWDATA><ROW CLNT_LIST_CODE="1001" CLNT_LIST_NAME="РИА ПАНДА-НОВОСИБИРСК" PLST_HEAD_DATE="20081118" PROD_LIST_CODE="8299" PROD_LIST_NUMB="9238" PROD_LIST_NAME="LA FEMME ELEGANTE МАТИРУЮЩАЯ ЭМУЛЬСИЯ ДЛЯ Ж/КОМБИНИРОВАННОЙ КОЖИ 75 МЛ" PRSV_LIST_NAME="ВИТА ХБО ПРИ РАН ООО" PGRP_LIST_NAME="КОСМЕТИКА" PLST_LINE_PACK="34" PLST_LINE_DATE="20090101" PLST_LINE_PRC1="86.52" USL_PRICE="ИНДИВИДУАЛЬНОЕ" QNTY="0"/><ROW CLNT_LIST_CODE="1001" CLNT_LIST_NAME="РИА ПАНДА-НОВОСИБИРСК" PLST_HEAD_DATE="20081118" PROD_LIST_CODE="7399" PROD_LIST_NUMB="8245" PROD_LIST_NAME="ФИТОЧАЙ ФИТОЛЮКС-32 ФИТОВИТАМИН С ЛЕСНЫМИ ЯГОДАМИ 50 Г" PRSV_LIST_NAME="НАРОДНАЯ МЕДИЦИНА МК ООО" PGRP_LIST_NAME="БАД, ЛЕЧЕБНОЕ ПИТАНИЕ" PLST_LINE_PACK="60" PLST_LINE_DATE="20090201" PLST_LINE_PRC1="21.85" USL_PRICE="ИНДИВИДУАЛЬНОЕ" QNTY="0"/><ROW CLNT_LIST_CODE="1001" CLNT_LIST_NAME="РИА ПАНДА-НОВОСИБИРСК" PLST_HEAD_DATE="20081118" PROD_LIST_CODE="8803" PROD_LIST_NUMB="9688" PROD_LIST_NAME="НАБОР ПОДАРОЧНЫЙ МЭТР (КРЕМ Д/БРИТЬЯ, ГЕЛЬ П/БРИТЬЯ, ШАМПУНЬ УКРЕПЛ.)" PRSV_LIST_NAME="ВИТА ХБО ПРИ РАН ООО" PGRP_LIST_NAME="КОСМЕТИКА" PLST_LINE_PACK="6" PLST_LINE_DATE="20100201" PLST_LINE_PRC1="114.71" USL_PRICE="ИНДИВИДУАЛЬНОЕ" QNTY="0"/><ROW CLNT_LIST_CODE="1001" CLNT_LIST_NAME="РИА ПАНДА-НОВОСИБИРСК" PLST_HEAD_DATE="20081118" PROD_LIST_CODE="8814" PROD_LIST_NUMB="9738" PROD_LIST_NAME="НАБОР ПОДАРОЧНЫЙ МЭТР (КРЕМ Д/БРИТЬЯ, ГЕЛЬ П/БРИТЬЯ, ГЕЛЬ Д/ДУША)" PRSV_LIST_NAME="ВИТА ХБО ПРИ РАН ООО" PGRP_LIST_NAME="КОСМЕТИКА" PLST_LINE_PACK="6" PLST_LINE_DATE="20100201" PLST_LINE_PRC1="113.31" USL_PRICE="ИНДИВИДУАЛЬНОЕ" QNTY="0"/></ROWDATA></DATAPACKET>

может кто нибудь обьяснит как это правильно пропарсить?


--------------------
Всех программистов надо посадить на целероны, что бы впредь головой думали что пишут.
user posted image
PM MAIL ICQ Skype   Вверх
pseud
Дата 20.11.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



"делай раз"
судя по содержимому - это выгрузка из наследника ClientDataSet поэтому:
1. новая форма
2. на форму TClientDataSet, TDataSource, TDBGrid
3. в дизайне:
Код

DataSource1.DataSet = ClientDataSet1;
DBGrid1.DataSource = DataSource1;

4. в коде в Form.OnCreate или Button.OnClick:
Код

ClientDataSet1.LoadFromFile('D:\qqq\qqq\qqq\qqq\qqq.xml'); 


user posted image

Оно?  smile 

Это сообщение отредактировал(а) pseud - 20.11.2008, 14:48


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
DYUMON
Дата 21.11.2008, 07:01 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 17.6.2006
Где: Новосибирск

Репутация: нет
Всего: 3



Спасибо но с утра сам разобрался. сделал загрузку в listview
Код

 XMLDoc:= xm.Create(nil);
 xmldoc.LoadFromFile(opendialog1.FileName);
  xmldoc.Active:=true;
 anElem:=xmldoc.DocumentElement;
for i:=0 to anElem.ChildNodes['ROWDATA'].ChildNodes.Count-1 do
begin
listview.Items.Add.Caption:=anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['CLNT_LIST_CODE'];
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['CLNT_LIST_NAME']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PLST_HEAD_DATE']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PROD_LIST_CODE']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PROD_LIST_NUMB']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PROD_LIST_NAME']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PRSV_LIST_NAME']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PGRP_LIST_NAME']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PLST_LINE_PACK']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PLST_LINE_DATE']) );
 Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['PLST_LINE_PRC1']) );
  Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['USL_PRICE']) );
  Listview.Items[Listview.Items.Count-1].SubItems.add(string(anElem.ChildNodes['ROWDATA'].ChildNodes[i].Attributes['QNTY']) );

хоть коряво но работает. 
а про  ClientDataSet я знаю раньше пользовался этим 
щас нужно было именно listview



--------------------
Всех программистов надо посадить на целероны, что бы впредь головой думали что пишут.
user posted image
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.