как программно добавить в xml <!DOCTYPE...>?
От: alsun  
Дата: 19.08.02 15:22
Оценка:
xml создается программно из таблиц,
oXML = CreateCOMObject;
...
oXML.appendChild(oXML.createProcessingInstruction('xml', ' version="1.0" encoding="windows-1251"'));
// вот здесь бы добавить объявление типа документа...
oXML.documentElement = oXML.createElement('ROOT');

потом в него добавляются ноды и аттрибуты из таблицы,
все это чудесно сохраняется в файл, но не прописывать же объявление типа документа в ручную?


oXML.createNode('10', 'ROOT', '');

выдает ошибку:
This operation can not be performed on DOCTYPE node.
Re: как программно добавить в xml <!DOCTYPE...>?
От: Lloyd Россия  
Дата: 19.08.02 15:44
Оценка:
Здравствуйте alsun, Вы писали:

A>xml создается программно из таблиц,

A> oXML = CreateCOMObject;
A> ...
A> oXML.appendChild(oXML.createProcessingInstruction('xml', ' version="1.0" encoding="windows-1251"'));
A> // вот здесь бы добавить объявление типа документа...
A> oXML.documentElement = oXML.createElement('ROOT');

A>потом в него добавляются ноды и аттрибуты из таблицы,

A>все это чудесно сохраняется в файл, но не прописывать же объявление типа документа в ручную?


A> oXML.createNode('10', 'ROOT', '');


A>выдает ошибку:

A> This operation can not be performed on DOCTYPE node.


А oXMLDOMDocument.doctype Вам не подойдет?
Re[2]: как программно добавить в xml <!DOCTYPE...>?
От: alsun  
Дата: 20.08.02 07:05
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Здравствуйте alsun, Вы писали:


A>>xml создается программно из таблиц,

A>> oXML = CreateCOMObject;
A>> ...
A>> oXML.appendChild(oXML.createProcessingInstruction('xml', ' version="1.0" encoding="windows-1251"'));
A>> // вот здесь бы добавить объявление типа документа...
A>> oXML.documentElement = oXML.createElement('ROOT');

A>>потом в него добавляются ноды и аттрибуты из таблицы,

A>>все это чудесно сохраняется в файл, но не прописывать же объявление типа документа в ручную?


A>> oXML.createNode('10', 'ROOT', '');


A>>выдает ошибку:

A>> This operation can not be performed on DOCTYPE node.


L>А oXMLDOMDocument.doctype Вам не подойдет?


к сожалению, doctype доступен только для чтения

doctype — Возвращает тип документа, определяемый при его создании тэгом <!DOCTYPE>, включающим DTD. Если в документе нет DTD описаний, возвращается null (действительно возвращает). Только для чтения.
Re[3]: как программно добавить в xml <!DOCTYPE...>?
От: ak_alex Россия  
Дата: 22.08.02 10:04
Оценка:
Здравствуйте alsun, Вы писали:

A>к сожалению, doctype доступен только для чтения


Можно сделать по тупому, после создания нового XMLDocument'а, загрузить в него <!DOCTYPE> из строки:

  Set doc_ = CreateObject("Microsoft.XMLDOM")
  doc_.async=false: doc_.validateOnParse=false: doc_.resolveExternals=false

  doc_.loadXml("<!DOCTYPE jboss PUBLIC     '-//JBoss//DTD JBOSS 2.4//EN'           'http://www.jboss.org/j2ee/dtd/jboss_2_4.dtd'><jboss/>")
  set newElement = doc_.appendChild (doc_.createProcessingInstruction("xml","version=""1.0"" encoding=""WINDOWS-1251"""))
  doc_.save(".\sm.xml")


Пример на vbs'е
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.