Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 как из XML узла (IXMLNode) сделать/получить обычный XML в текстовом виде?  [new]
woojin
Member

Откуда:
Сообщений: 96
всем добрейшего денька!

есть некоторый узел (IXMLNode) заполненный данными
не могу эти данные данные получить

XML файл:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<tables>
    <works>
        <DATA wrkId="1" wrkName="Name1" wrkIzmer="Izmer1" wrkKolVo="4" wrkCena="5" /> 
        <DATA wrkId="2" wrkName="Name2" wrkIzmer="Izmer2" wrkKolVo="8" wrkCena="3" /> 
        <DATA wrkId="3" wrkName="Name3" wrkIzmer="Izmer3" wrkKolVo="16" wrkCena="13" /> 
    </works>
</tables>

кусок функции:
var
    XmlDoc: IXMLdocument;
    XmlElement: IXMLNode;
    s1, s2, s3: string;

begin
    XmlDoc := LoadXMLDocument('file.xml');
    XmlElement := XmlDoc.DocumentElement.ChildNodes[0];

// если написать так
    s1 := XmlElement.XML; // то получаю весь узел <works>...</works>

// а если написать вот так
    s2:=XmlElement.ChildNodes[name].XML; // получаю только <works/>
//    s2:=XmlElement.ChildNodes[name].Text; // так же <works/>

// и если вот так
    s3 := XmlElement.ChildNodes.FindNode('works').XML; // получаю AV
//    s3 := XmlElement.ChildNodes.FindNode('works').Text; // то же AV

подскажите как получить текст между <works>...</works>?

P.S. кроме works есть и другие узлы, в каком порядке они идут не известно, известны только их имена, поэтому придётся искать .FindNode
7 фев 20, 11:48    [22075462]     Ответить | Цитировать Сообщить модератору
 Re: как из XML узла (IXMLNode) сделать/получить обычный XML в текстовом виде?  [new]
woojin
Member

Откуда:
Сообщений: 96
сам сообразил где косяк
надо было так делать
var
    XmlDoc: IXMLdocument;
    XmlElement: IXMLNode;
    s: string;

begin
    XmlDoc := LoadXMLDocument('file.xml');
    XmlElement := XmlDoc.DocumentElement;

    s := XmlElement.ChildNodes.FindNode('works').XML;


Сообщение было отредактировано: 7 фев 20, 15:00
7 фев 20, 14:52    [22075636]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить