Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

Dom парсер для XML   Найти похожие ветки 

 
Dark ©   (2008-01-29 19:04) [0]

У меня задача: считать весь xml в память и иметь возможность по нему перемещаться, что не позволяет Sax парсер. По-этому буду использовать Dom парсер. Но обыскав интернет не нашел примеров его использования. Может может кто выложить пример его использования? Буду очень благодарен.


 
Галинка ©   (2008-01-29 19:20) [1]

Читай MSDN SmlDocument. Вроде и на русском есть. Это ждя обзего развития. Как адаптировать для дельфы не знаю. Следующий оратор подскажет.


 
Галинка ©   (2008-01-29 19:21) [2]

очепятка блин... XmlDocument


 
clickmaker ©   (2008-01-29 19:22) [3]


> Как адаптировать для дельфы не знаю. Следующий оратор подскажет

можно я буду следующим?
Он уже адаптирован. Даже компонент на палитре есть


 
Галинка ©   (2008-01-29 19:25) [4]

я вообзе синтаксис имела в виду. Но похоже кроме ":" мало что добавляется )))

вот тут обсуждение есть
http://www.sql.ru/forum/actualthread.aspx?tid=332033


 
Dark ©   (2008-01-29 19:25) [5]

Да-да, я знаю. я делаю нехитрую штуку - тест. Уже написал прогу для записи в xml, теперь осталось тока прога для самого теста.


 
Dark ©   (2008-01-29 19:25) [6]


> Да-да, я знаю. я делаю нехитрую штуку - тест. Уже написал
> прогу для записи в xml, теперь осталось тока прога для самого
> теста.

Читающая сам тест из xml


 
Галинка ©   (2008-01-29 19:26) [7]

для меня в свое время хорошим примером была перегонка XmlDocument"а в TreeView.


 
Галинка ©   (2008-01-29 19:27) [8]

Altova XMLSpy или хотябы браузером можно просмотреть файл. Или что конкретно ты хочешь?


 
Dark ©   (2008-01-29 19:33) [9]

Я создал xml такого типа

Предмет
вариант1
  вопрос1
     ответ1
     ответ2
     ...
  /вопрос1
/вариант1
вариант2
...
/Предмет

В программе у меня есть Лэйбэлы для вопроса и ответов. При запуске выбирается вариант и присваивается переменной, скрывается форма варианта, показывается сам тест. и вот мне надо присваивать всем Лэйбелам соответствующие значения из xml


 
Галинка ©   (2008-01-29 19:37) [10]

я бы конвертировала такой хмл в датасет и спользовала бы нормальные DBControls (DBNavigator, DBLabel etc).


 
Dark ©   (2008-01-29 19:39) [11]

А смысл.мне кажется это лишний гемморой, если можно напрямую считывать


 
Dark ©   (2008-01-29 19:39) [12]

Попробую сделать так, как описано по твоей ссылке.


 
Галинка ©   (2008-01-29 19:57) [13]

в моем понимании прелесть Xml и ограничивается наличием в классе DataSet метода FromXml (или что-то в этом роде). Потому что работать с моделью набора данных легче.

Хотя можно что-то типа:

1. Грузим в XmlDocument нужный файл;
2. Выбираем вариант. Перемещаемся на нужный узел первого уровня.
3. Делаем нафигатор, для путешествия по вопросам (читай по дочерним узлам "Варианта").
4. Проходя по вопросам, создаем динамически метки(лэйблы) и отображаем в них нужные строки.

ПыСы: с тестовыми прогами дел вобщем-то не имела ни разу. Вероятно не поняла твоей задумки. Но общий курс должен подойти.


 
Dark ©   (2008-01-29 20:15) [14]

Да, впринципе то, что надо. Спасибо. Но ещё кое-что можешь привестив  пример конкретный кусок кода который считает параметр quest у этого узла и выведет в Лэйбел lblQuestion (к примеру): <q1 quest="Ты кто?">


 
Dark ©   (2008-01-29 20:40) [15]

Кто-нибудь! Помогите с постом [14]! Привидите пример!


 
homm ©   (2008-01-29 21:34) [16]

> [8] Галинка ©   (29.01.08 19:27)
> Или что конкретно ты хочешь?

Он же сказал, DOM он хочет, а clickmaker правильно уже подсказал что даже в стандартной дельфе (2005+, может раньше) есть такой компонент.


 
sniknik ©   (2008-01-29 23:54) [17]

> 2005+, может раньше
D7 уже есть. раньше хз. но даже если нет то поставить... вся трудность галочку установить на "генерировать врапер" при импорте библиотеки типов... (а то и вообще она по умолчанию "взведена" ... )


 
DiamondShark ©   (2008-01-30 11:52) [18]


> Кто-нибудь! Помогите с постом [14]! Привидите пример!

Как кто-нибудь его на русский переведёт, так сразу.


 
Галинка ©   (2008-01-30 15:09) [19]

Насколько я поняла, ты нужный тебе текст храниш в аттрибутах. Тогда надо аттрибут преобразовывать в текст, и складывать в Caption метки.


 
Dark ©   (2008-01-30 15:23) [20]

Правильно! Вот мне нужен пример как считать у этого тега <q1 quest="Ты кто?"> атрибут name


 
Dark ©   (2008-01-30 15:24) [21]

тьфу атрибут quest


 
Dark ©   (2008-01-30 15:28) [22]

А то я вот это делаю, а как атрибут присвоить че-то в хелпе не нашел

procedure NextQuestion();
var
v,q,o1,o2,o3,o4,o5,n: IXMLNode;
begin
questn:=questn+1;
XMLDocument1.FileName:="test.xml";
XMLDocument1.Active:=True;
Variant:="variant"+inttostr(varsel);
Quest:="q"+inttostr(questn);
 n:=XMLDocument1.ChildNodes.FindNode(variant);
 q:=n.ChildNodes.FindNode(quest);
 o1:=q.ChildNodes.FindNode("ot1");
 o2:=q.ChildNodes.FindNode("ot2");
 o3:=q.ChildNodes.FindNode("ot3");
 o4:=q.ChildNodes.FindNode("ot4");
 o5:=q.ChildNodes.FindNode("ot5");
end;


 
Плохиш ©   (2008-01-30 15:33) [23]

.Attributes["xxx"] := xxx;


 
Галинка ©   (2008-01-30 15:42) [24]

там должно быть свойство Attributes.

Маленький примерчик:

           XmlDocument doc = new XmlDocument();
           doc.LoadXml("<book genre="novel" publicationdate="1997"> " +
                       "  <title>Pride And Prejudice</title>" +
                       "</book>");

           XmlAttributeCollection attrColl = doc.DocumentElement.Attributes;

           Console.WriteLine("Display all the attributes for this book...");
           for (int i = 0; i < attrColl.Count; i++)
           {
               listBox1.Items.Add(attrColl.Item(i).Value);
           }


Зезультатик:

novel
1997


 
Dark ©   (2008-01-30 16:05) [25]

Щас попробую Спасибо



Страницы: 1 вся ветка

Текущий архив: 2008.02.24;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.016 c
6-1181112499
Сергей Колесник
2007-06-06 10:48
2008.02.24
UDP перехватчик


2-1201522928
BBCHa
2008-01-28 15:22
2008.02.24
Иконка и сервис


15-1201160055
*.dpr
2008-01-24 10:34
2008.02.24
Как бороться с {$IFDEF} в *.dpr?


2-1201546095
noi
2008-01-28 21:48
2008.02.24
перевести данные из pChar в array of Byte


2-1201517882
tomkat
2008-01-28 13:58
2008.02.24
данные фильтра