Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Формирование XML-файла


zhegulov ©   (2006-05-05 11:44:00) 

Помогите разобраться. Вот такой код по созданию xml-файла:

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, XMLDoc, XMLIntf, ActiveX;

type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 XMLfile: IXMLdocument;
 pNode,iNode: IXMLNode;

implementation

{$R *.dfm}

begin
CoInitialize(nil);

XMLfile := TXMLDocument.Create(nil);
XMLfile.Active:=true;

iNode:= XMLfile.AddChild('quiz');
inode.DeclareNamespace('','sdfsf');
iNode.SetAttributeNS('dd','','123');

pNode:=xmlfile.ChildNodes.Last.AddChild('asas');
pnode.SetAttributeNS('kk','','345');

XMLfile.SaveToFile('d:\aaa.xml');

end.

Вот что получается в XML-файле:

<quiz xmlns="sdfsf" dd="123">
 <asas xmlns="" kk="345"/>
</quiz>

Никак не пойму почему в элементе asas еще присутствует атрибут xmlns="" и как сделать в программе так чтобы он не формировался?


Reindeer Moss Eater   (2006-05-05 13:34:00) [1]

А у меня MSXML


Плохиш   (2006-05-05 13:33:00) [2]


> Reindeer Moss Eater ©   (05.05.06 13:09) [5]
> Просто префикс надо непустой при DeclareNamespace

Да я, собственно, как и автор пустой давал, не помогает, всё-равно ничего не добавляет :-)
Хотя у меня DOMVendor-ом "Xerces XML" стоит.


Reindeer Moss Eater   (2006-05-05 13:22:00) [3]

Не надо F1?
Тогда жми Alt+F4 в IDE


zhegulov   (2006-05-05 13:20:00) [4]

В том-то и дело что не нужен префикс. Если его поставить ну хотя бы вот так:

inode.DeclareNamespace('pp','sdfsf');

то тогда понятно все будет вот так:

<quiz xmlns:pp="sdfsf" dd="123">
<asas kk="345"/>
</quiz>

Но дело в том что не нужен префикс. И не надо давать советы типа нажми F1 если знающий человек он всегда поможет конкретно.


Reindeer Moss Eater   (2006-05-05 13:09:00) [5]

Просто префикс надо непустой при DeclareNamespace


Плохиш   (2006-05-05 12:21:00) [6]

Хотя, сейчас по всякому попробовал, ничего не добавляется. Видно автор что-то не договаривает.


Reindeer Moss Eater   (2006-05-05 12:10:00) [7]

Лучше и там и там нажимать.


Плохиш   (2006-05-05 12:06:00) [8]


> Reindeer Moss Eater ©   (05.05.06 11:51) [1]

Нет, F1 на SetAttributeNS нажимать надо ;-)


Reindeer Moss Eater   (2006-05-05 11:51:00) [9]

Нажми F1 на DeclareNamespace и внимательно прочитай справку.


Наверх

Титульная страница Поиск, карта сайта Написать письмо