Показать сообщение отдельно
  #1  
Старый 21.12.2015, 12:52
Maxjuvefan Maxjuvefan вне форума
Прохожий
 
Регистрация: 24.08.2015
Сообщения: 30
Версия Delphi: delphi 2010
Репутация: 10
По умолчанию Создание в Delphi 2010 xml файла нужного формата

Ребят, столкнулся с такой проблемой - как создать в Delphi 2010 xml файл, чтобы был один корневой тег, в котором есть несколько переменных? Значения переменных будут браться из БД на SQL.

Нужно, чтобы xml файл выглядел таким образом:

<?xml version="1.0" encoding="utf-16"?>
<AssignmentQR text00_Вид="Документ" text01_Начальник="Начальник отдела ИТ" text02_фио="Иванов А.В." />

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

Пробую сделать через AddChild, но оно создает много тегов, а нужно, чтобы все было в одном.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Xml: IXMLDocument;
begin
  // создаем
  Xml := TXMLDocument.Create (nil);
  Xml.Active := true;
// создаем
  with Xml do
    begin
      // создаем корневой узел
      with AddChild ('AssignmentQR') do
        begin
       // дочерние элементы
            ChildValues ['text02_фио'] := '=" Иванов  А.В."';
            ChildValues ['text01_Начальник'] := '="Начальник отдела ИТ"';
            ChildValues ['text00_Вид'] := '="Документ"';
        end;  // with
    end;  // with: создаем
Xml.SaveToFile ('D:\44.xml');
end;

Пробую сделать через Add, возникает проблема длины строки, нужная строка больше 255 символов (textN много). Файл получается, но через браузер не отрывается.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Xml: TStringList;
begin
   // создаем объект
   Xml := TStringList. Create;
   // формируем документ
   Xml. Add ('<?xml version="1.0" encoding="UTF-16"?>');
   Xml. Add ('< AssignmentQR text00_Вид="Документ" text01_Начальник="Начальник отдела ИТ" text02_фио="Иванов А.В."/>');
   // записываем
   Xml. SaveToFile ('D:\333333.xml');
   // освобождаем память
   FreeAndNil (Xml);
end;
Админ: Пользуемся тегами для оформления кода, иначе последуют санкции!

Помогите, кто чем может.
Ответить с цитированием