![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
XMLDocument преврашает знаки тега <> в «& lt;»
Kolan © (2007-03-14 19:28:00)Зачем ему это?
Я вообще по су ти хочу добавить текст с тегами, и чтобы он не превратил теги в «& lt;» , создал соответствующие ноды
Kolan (2007-03-17 19:22:00) [1]
> Выделенная строка приводит к AV :(
А надо было сделать документ активным. Все с этим понятно...
С & вопрос так и не решен,. :(
Kolan (2007-03-17 19:16:00) [2]Может я сам документ не так создаю...
constructor TMessageBuilder.Create;
var
TempDoc: TXMLDocument;
begin
TempDoc := TXMLDocument.Create(nil);
TempDoc.DOMVendor := GetDOMVendor('MSXML');
//TempDoc.Version := '1.0';
FXMLMessage := TempDoc;
end;
Выделенная строка приводит к AV :(
Kolan (2007-03-17 19:05:00) [3]Он меня убьёт это XML.
Node.Text := &что-то
Он & заменяет наamp ;
Как сделать чтобы он не заменял...
Kolan (2007-03-16 15:38:00) [4]> В то время как обычная технология Microsoft DOM работает:
А теперь понял(я просто думал вы считаете я сторонним чем-то пользуюсь), может попробавать...
palva (2007-03-16 15:36:00) [5]> Вы очем вообще, какая компонента...:
TXMLDocument это компонента. Я кладу ее на форму с закладки Internet.
В то время как обычная технология Microsoft DOM работает:
{$APPTYPE CONSOLE}
uses ActiveX, ComObj;
var
x: OleVariant;
begin
CoInitialize(Nil);
x := CreateOleObject('MSXML2.DomDocument');
x.loadXML('<BODY>asd<ttt>fgh</ttt>jkl</BODY>');
WriteLn(x.documentElement.text); // asdfghjkl
end.
Kolan (2007-03-16 15:20:00) [6]Я еще не пробовал(проект дома), но думаю что разобрался, благодарю plava :)
Kolan (2007-03-16 15:19:00) [7]> Какая-то недоделанная компонента.
Вы очем вообще, какая компонента...:
var
Doc: IXMLDocument
berin
Doc := TXMLDocument.Create(nil);
palva (2007-03-16 15:17:00) [8]> Если например попросить BODY.Text (ну понятно что BODY - это нод), то скажет что это не текстовый элемент...
В самом деле. Какая-то недоделанная компонента. Обычный микрософтовский DOM такую возможность предоставляет.
Reindeer Moss Eater (2007-03-16 15:17:00) [9]Ага. Только браузер видит другую структура документа.
Kolan (2007-03-16 15:00:00) [10]> Еще раз для тех кто в танке.
:) это про меня :)
> А если сам решил формировать тело xml, то нефик пытаться
> заставить парсить свое творение тех, кто соблюдает стандарты.
Так ведь парситься же, и браузер нормально отображает. Те документ является правильно оформленным...
Reindeer Moss Eater (2007-03-16 14:52:00) [11]Еще раз для тех кто в танке.
Не надо самому формировать боди xml документа.
Записывай в NodeValue все что хочешь, и считаешь обратно оттуда все что хочешь.
А если сам решил формировать тело xml, то нефик пытаться заставить парсить свое творение тех, кто соблюдает стандарты.
Kolan (2007-03-16 14:21:00) [12]> Но если мы берем Text от какого-нибудь разветвленного элемента,
> то по всему дереву дочерних нодов тексты будут собраны
> и сцеплены.
То есть как?
Если например попроситьBODY.Text(ну понятно что BODY - это нод), то скажет что это не текстовый элемент...
palva (2007-03-16 13:18:00) [13]В свою очередь второй нод типа "элемент" содержит дочерний нод типа "текст". Но если мы берем Text от какого-нибудь разветвленного элемента, то по всему дереву дочерних нодов тексты будут собраны и сцеплены.
Kolan (2007-03-16 13:11:00) [14]ААА те в ноде BODY есть 3 нода
1.Мой текстс именем #text
2.<BQQQ>elementarnyj text</BQQQ>c именем BQQQ
3. иb478925fdgfс именем #text
Вот чего я не понимал. Я непонимал что это за#text
Кажется теперь дошло :)
palva (2007-03-16 13:01:00) [15]Пробел между текстами нужно вставить
+ ' '
palva (2007-03-16 12:54:00) [16]Тэг B я заменил другим.
procedure TForm1.FormCreate(Sender: TObject);
begin
XMLDocument1.XML.Add
('<?xml version="1.0" encoding="Windows-1251"?>');
XMLDocument1.XML.Add
('<BODY>Мой текст<BQQQ>elementarnyj text</BQQQ>b478925fdgf</BODY>');
XMLDocument1.Active := True;
Label1.Caption := XMLDocument1.DocumentElement.ChildNodes[0].Text +
XMLDocument1.DocumentElement.ChildNodes[2].Text;
end;
Kolan (2007-03-16 12:15:00) [17]> Читать можно первоисточник на сайте W3C.org или любую книжку
> по XML
Я читал про сам XML но там нет ничего про то как работать из программ...
Kolan (2007-03-16 11:41:00) [18]> Далее, после < сразу должно идти имя элемента (без пробела)
> .
> На форуме тэг интерпретировался как "полужирный".
Поэтому и пробелы... :)
> Получился такой ddd.xml
Во-во то что надо.
<BODY>Мой текст< B >elementarnyj text< /B >b478925fdgf</BODY>
Как теперь получитьМой текст b478925fdgf. Те тот текст что лежит вBODYно не вB
PS
Понятно что пробелов в< B >нет, это из-за форума...
palva (2007-03-16 00:12:00) [19]Да, все равно не получилось.
palva (2007-03-16 00:10:00) [20]На форуме тэг интерпретировался как "полужирный". Надо было изобразить так:
<BODY>Мой текст elementarnyj textb478925fdgf</BODY>