| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Создание xml с нуля |
| Автор: Aline 26.4.2006, 09:50 |
| Всем привет! Здесь на форуме я не нашла ответа на вопрос о том, как с "нуля" создать программно xml -документ. Но проблема всё-таки решилась и я хочу поделиться опытом, может кому то помогу этим. Вот небольшой кусок из программы: _di_IXMLDocument xmlDocument = NewXMLDocument(); xmlDocument->Active = true; xmlDocument->Encoding = "windows-1251"; xmlDocument->Options = xmlDocument->Options << doNodeAutoIndent; IXMLNode* parentNode = xmlDocument->AddChild("Chapter"); parentNode->SetAttribute(WideString("xmlns:xsi"),(AnsiString)"http://www.w3.org/2001/XMLSchema-instance"); parentNode->SetAttribute(WideString("xsi:noNamespaceSchemaLocation"),(AnsiString)"Proba.xsd"); _di_IXMLNode Section = parentNode->AddChild(WideString("Section")); Section->SetAttribute("DataSet", (AnsiString)"DataSet"); _di_IXMLNode Signals = Section->AddChild("Signals"); _di_IXMLNode Capt = Signals->AddChild("Caption"); Capt->Text = "Сигнал1"; xmlDocument->SaveToFile("proba1.xml"); А вот что в результате этого получается: <?xml version="1.0" encoding="windows-1251"?> <Chapter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Proba.xsd"> <Section DataSet="DataSet"> <Signals> <Caption>Сигнал1</Caption> </Signals> </Section> </Chapter> |
| Автор: ksili 17.8.2007, 12:10 | ||||
Пример работает, но у меня возник один вопрос. Мне нужно указать рамещение декларации типа XML-документа (DTD - document type definition). Выглядит это так:
Это должно располагаться сразу после
Но до первого узла. То есть сама эта запись узлом не является и при помощи _di_IXMLNode её добавлять, как я понимаю, нельзя. Какой код нужно добавить, чтобы в XML-файле появилась эта запись? Что-то я не нашёл подходящего параметра у компонента _di_IXMLDocument. Вообще, первый день с XML разбираюсь. |