Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание xml с нуля, хочу поделиться опытом(может пригодится) 
:(
    Опции темы
Aline
Дата 26.4.2006, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



Всем привет!
Здесь на форуме я не нашла ответа на вопрос о том, как с "нуля" создать программно 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>
 
PM MAIL   Вверх
ksili
Дата 17.8.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Пример работает, но у меня возник один вопрос. Мне нужно указать рамещение декларации типа XML-документа (DTD - document type definition). Выглядит это так:
Код

<!DOCTYPE package PUBLIC "-//e-port//Eport Diler Message protocol 1.0.//EN" "http://dtd.e-port.ru/request.10.dtd">

Это должно располагаться сразу после 
Код

<?xml version="1.0" encoding="windows-1251"?>

Но до первого узла. То есть сама эта запись узлом не является и при помощи _di_IXMLNode её добавлять, как я понимаю, нельзя. Какой код нужно добавить, чтобы в XML-файле появилась эта запись? Что-то я не нашёл подходящего параметра у компонента _di_IXMLDocument. 

Вообще, первый день с XML разбираюсь.

Это сообщение отредактировал(а) ksili - 18.8.2007, 07:27


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.