powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как из XML узла (IXMLNode) сделать/получить обычный XML в текстовом виде?
2 сообщений из 2, страница 1 из 1
как из XML узла (IXMLNode) сделать/получить обычный XML в текстовом виде?
    #39923845
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем добрейшего денька!

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

XML файл:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<?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>


кусок функции:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
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
...
Рейтинг: 0 / 0
как из XML узла (IXMLNode) сделать/получить обычный XML в текстовом виде?
    #39923957
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сам сообразил где косяк
надо было так делать
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var
    XmlDoc: IXMLdocument;
    XmlElement: IXMLNode;
    s: string;

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

    s := XmlElement.ChildNodes.FindNode('works').XML;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как из XML узла (IXMLNode) сделать/получить обычный XML в текстовом виде?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]