простой парсинг XML

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
Sawer
новенький
Сообщения: 69
Зарегистрирован: 15.05.2007 22:53:48

простой парсинг XML

Сообщение Sawer »

Помогите вытянуть в файл (текстовый) даные из такой XML:

Код: Выделить всё

 <?xml version="1.0" encoding="UTF-8" ?>  
- <device netaddr="756033">
- <measuringpoint>
  <measuringchannel name="Данные 1" code="100" tag="Значение 1" enable="true" /> 
  <measuringchannel name="Данные 2" code="300" tag="Значение 2" enable="true" /> 
  <measuringchannel name="Данные 3" code="400" tag="Значение 3" enable="true" /> 
  </measuringpoint>
  </device>


Как вытянуть в виде текстового файла
N = 756033
Данные 1 = Значение 1
Данные 2 = Значение 2
и т.д...

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

Сообщение Slavikk »

Оф. тутор. - http://wiki.lazarus.freepascal.org/Networking
Дополнение - http://www.thomas-zastrow.de/texte/fpcxml/index.php

В принципе этого достаточно. Посмотри получше примеры к статьям на www.thomas-zastrow.de - всё станет понятно.
Sawer
новенький
Сообщения: 69
Зарегистрирован: 15.05.2007 22:53:48

Сообщение Sawer »

например с кодом:

Код: Выделить всё

var
 PassNode: TDOMNode;
 Doc:      TXMLDocument;
begin
 Doc := TXMLDocument.Create;
 // Read in xml file from disk
 ReadXMLFile(Doc, '1.xml');
 // Retrieve the "password" node
 PassNode := Doc.DocumentElement.FindNode('password');
 // Write out value of the selected node
 WriteLn(PassNode.NodeValue); // will be blank
 // The text of the node is actually a separate child node
 WriteLn(PassNode.FirstChild.NodeValue); // correctly prints "abc"

выдает:

Код: Выделить всё

1.pas(2,12) Error: Identifier not found "TDOMNode"
1.pas(2,20) Error: Error in type definition
1.pas(3,12) Error: Identifier not found "TXMLDocument"
1.pas(3,24) Error: Error in type definition
1.pas(5,9) Error: Identifier not found "TXMLDocument"
1.pas(7,2) Error: Identifier not found "ReadXMLFile"
1.pas(7,27) Error: Illegal expression
1.pas(9,18) Error: Illegal qualifier
1.pas(9,42) Fatal: Syntax error, ";" expected but "(" found
1.pas(9,42) Fatal: Compilation aborted


че делать?
Yogrik
постоялец
Сообщения: 116
Зарегистрирован: 22.03.2006 23:41:48

Сообщение Yogrik »

Сходить по ссылкам

http://wiki.lazarus.freepascal.org/Networking писал(а):Currently there is a set of units that provides support for XML on Lazarus.
These units are called "XMLRead", "XMLWrite" and "DOM" and they are part
of the Free Component Library (FCL) from the Free Pascal Compiler.


Тут даже английского знать не надо
Ответить