Работа с XML

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Работа с XML

Сообщение Slavikk » 16.01.2007 14:17:09

Нужен сабж:
1. Програмное создание XML и таблицы внём
2. Чтение определённых строк
3. Изменение определённых строк
Аватара пользователя
Slavikk
постоялец
 
Сообщения: 208
Зарегистрирован: 15.01.2007 22:34:52
Откуда: Из лесов...

Сообщение first-leon » 16.01.2007 18:48:46

Компоненты есть какие то, наверное с ними надо рыть:
TXMPPropStorage
TSynXMLSyn
first-leon
новенький
 
Сообщения: 68
Зарегистрирован: 20.04.2006 18:46:31

Сообщение Serge30 » 17.01.2007 02:06:30

first-leon писал(а):Компоненты есть какие то, наверное с ними надо рыть:

TXMPPropStorage
TSynXMLSyn


Это не то.
TXMLPropStorage - предназначен для сохранение в XML параметров формы и компонентов на ней, а TSynXMLSyn - для подсветки синтаксиса XML в TSynEdit.

Лучше копать в сторону FCL. Там в папке XML есть модули для работы с данным форматом.
Serge30
незнакомец
 
Сообщения: 6
Зарегистрирован: 08.01.2007 23:57:21

Сообщение SergKam » 17.01.2007 04:38:39

TXMLDom - вперед и с песьнями. общепринятый стандарт есть в delphi и fpc
в help -е делфи7 все подробно описано и с примерами
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение Slavikk » 19.01.2007 16:30:58

:lol: - А пример привести нетрудно, а то недоходит немного...
Аватара пользователя
Slavikk
постоялец
 
Сообщения: 208
Зарегистрирован: 15.01.2007 22:34:52
Откуда: Из лесов...

Сообщение SergKam » 19.01.2007 22:16:30

что именно не доходит.
загляни в /usr/share/fpcsrc/fcl/xml
там дофига всего.
может скажешь что тебе конкретно от него нужно.
Код: Выделить всё
uses .......,dom,xmlread;
...
var
dom:TXmlDoсument
...
begin
ReadXmlFile(thedom,'test.xml');
writeln(thedom.FirstNode.Name);
thedom.free;
end;

достаточно? :)
там куча property у каждого нода



ps:cвойства соответствуют этим http://www.topxml.com/xml_dom/default.asp
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение vitaskin » 22.01.2007 19:17:56

Вопрос!
А как правильно использовать XPath выражения

Пример, есть у меня документ
<conf>
<storage name="st1">хранилище раз</storage>
<storage name="st2">хранилище два</storage>
<storage name="st3">хранилище три</storage>
</conf>

Код: Выделить всё
var
  dom:TXmlDoсument
  XPathResult: TXPathVariable;
begin
  //загрузил
  ReadXmlFile(dom,'storage.xml');

  //пытаюсь получить узел по XPath выражению
  XPathResult := EvaluateXPathExpression('conf/storage/[@name="st2"]', dom);
 
  //пытаюсь получить узел
  if XPathResult.AsNodeSet.Count > 0 then
    TDOMNode(XPathResult.AsNodeSet.Items[0]).NodeValue
end;


В данном примере, у меня не получается получить а не одного узла.
Подскажите, что я не так делаю?
Последний раз редактировалось vitaskin 24.01.2007 10:54:27, всего редактировалось 1 раз.
vitaskin
незнакомец
 
Сообщения: 6
Зарегистрирован: 22.01.2007 19:04:43

Сообщение shade » 22.01.2007 19:42:17

сравните со своим примером в XML файле у вас conf
а XPath - config

conf/storage/[@name="st2"]
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение vitaskin » 22.01.2007 19:49:52

Это я опечатался, но погоду это не меняет :(
vitaskin
незнакомец
 
Сообщения: 6
Зарегистрирован: 22.01.2007 19:04:43

Сообщение vitaskin » 22.01.2007 19:54:05

Если кто-то работал с XPath, дайте рабочий пример :)
vitaskin
незнакомец
 
Сообщения: 6
Зарегистрирован: 22.01.2007 19:04:43

Сообщение shade » 22.01.2007 21:41:52

Ну попробуй /conf/storage/[@name="st2"]
С данным модулем не работал, а XPath выражение правильнос составлено.
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение shade » 22.01.2007 21:43:13

Нет, не правльно
/conf/storage[@name="st2"]
Слешь перед квадратной скобкой лишний!
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение vitaskin » 23.01.2007 18:47:09

Все равно не работает
vitaskin
незнакомец
 
Сообщения: 6
Зарегистрирован: 22.01.2007 19:04:43

Сообщение shade » 23.01.2007 20:10:34

Проверил, и у меня тоже не работает...
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение SergKam » 23.01.2007 22:19:15

в конце примера XML
<conf> надо </conf>

и кажется надо чтобы в начале обязательное обьявление xml было
<?XML version="1.0"?>
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 211

Рейтинг@Mail.ru