Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.04 c
2-1201253617
Анна
2008-01-25 12:33
2008.02.24
запись select-а в XML файл


11-1183818425
BMouradov
2007-07-07 18:27
2008.02.24
KolBZip2


15-1201110408
xayam
2008-01-23 20:46
2008.02.24
подскажите алгоритм поиск циклов в несвязанном графе


6-1180940537
DVM
2007-06-04 11:02
2008.02.24
Винет поток на функции Socket().


15-1201252151
tolyan
2008-01-25 12:09
2008.02.24
загрдиск





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский