Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2010, 12:18   #1
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
Вопрос Формирования XML - как поступить???

Доброго времени суток Уважаемые!!! Хочу посоветоваться как же лучшее поступить с моей задачей! Суть в следующем: нужно с определённого набора данных формировать XML файл определённой структуры так как заточен он под определённый сайт! И выходя из этого какие-то универсальные методы для этого не подойдут! Так что же делать? Разработать процедура которая бы формировала файл *.xml такого содержания которого требует синтаксис того сайта с подстановкой туда нужных данных?
Заранее спасибо за помощь!!!
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 25.08.2010, 13:02   #2
Куралай_
 
Регистрация: 13.04.2010
Сообщений: 7
По умолчанию

var F: TextFile;

begin
AssignFile(F, 'NEWFILE.XML');
Rewrite(F);
Writeln(F, 'данные ...');
CloseFile(F);
end;
Куралай_ вне форума Ответить с цитированием
Старый 25.08.2010, 13:24   #3
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Цитата:
Код:
var F: TextFile;

begin
AssignFile(F, 'NEWFILE.XML');
Rewrite(F);
Writeln(F, 'данные ...');
CloseFile(F);
end;
Вот пример файла который я должен получить:

Код:
<?xml version="1.0" encoding="UTF-8"?>
  <realties xmlns="http://xml.ria.ua/schemas/dom/0.1" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://www.xml.ria.ua/schemas/dom/0.1
          http://www.xml.ria.ua/schemas/dom/0.1/dom.xsd">
  
    <realty>
    
      <email>your@email.com</email>
      <local_realty_id>1234</local_realty_id>
      
      <type_ob_id>sale</type_ob_id>
      <type_realty_id>commercial_real_estate</type_realty_id>
      <obl_id>1</obl_id>
      <city_id>1</city_id>
      <area_id>15106</area_id>
      <street>первомайская, 140</street>
   
      <all_sq>885.00</all_sq>
      <type_wall_id>brick</type_wall_id>

      <price>200000</price>
      <type_price_id>for_all</type_price_id>
      
      <sotok>10.0</sotok>

      <name>Здание офисн., развл., гост. назначения</name>
      <zastroi>true</zastroi>
      <is_new>false</is_new>

      <publish_weeks>4</publish_weeks>

      <photos_urls>
        <loc>http://example.com/images/image1.jpg</loc>
        <loc>http://example.com/images/image2.jpg</loc>
        <loc>http://example.com/images/image3.jpg</loc>
      </photos_urls>  

      <videos_urls>
        <loc>http://example.com/videos/video1.avi</loc>
        <loc>http://example.com/videos/video2.avi</loc>
      </videos_urls>  

      <options>
        <option_item>
          <option_id>40</option_id>
          <option_value></option_value>
        </option_item>  
        <option_item>
          <option_id>46</option_id>
          <option_value></option_value>
        </option_item>  
        <option_item>
          <option_id>48</option_id>
          <option_value></option_value>
        </option_item>  
        <option_item>
          <option_id>49</option_id>
          <option_value></option_value>
        </option_item>  
      </options>  

      <description>Здание офисн., развл., 
        гост. назначения, общ.пл. 900 кв.м., 3/3 эт., h=3, 
        отличное сост., 10 сот.; возможное прим.: офис, представит., 
        банк; отдельностоящее с ремонтом 
      </description>
   
    </realty>  

  </realties>
Как исходя из вашего примера я его получу???
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 25.08.2010, 13:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Когда-то подруга попросила такой конвертер.
Вот Легкий пример :
Код:
program adotoxml;

{$APPTYPE CONSOLE}

uses
  activex,
  adodb,
  Classes,
  SysUtils;

procedure adotoxmlp(a:TADOQuery;FileName:String);
  var s:TStringList;i:integer;
  begin
   s:=TStringList.Create;
   a.Open;
   s.Add('<?xml version="1.0" encoding="windows-1251"?>');
   s.Add('<Таблица>');
   while not a.Eof do begin
    s.Add('      <Запись>');
    for i:=0 to a.FieldCount-1 do
     s.Add('            <'+a.Fields[i].DisplayName+'>'+a.Fields[i].AsString+'</'+a.Fields[i].DisplayName+'>');
    s.Add('      </Запись>');
    a.Next;
   end;
   s.Add('</Таблица>');
   s.SaveToFile(FileName);
   s:=nil;
  end;
var ad:TADOQuery;
begin
  CoInitialize(0);
 ad:=TADOQuery.Create(nil);
 ad.ConnectionString:='Provider=SQLOLEDB.1;Password="";User ID="sa";Persist Security Info=True;Initial Catalog=orant2;Data Source=o21';
 ad.SQL.Text:='select  id,f from users';
 adotoxmlp(ad,'c:\temp\x.xml');
  { TODO -oUser -cConsole Main : Insert code here }
 ad:=nil;
end.
Здесь не по твоим меркам, но сам смысл как это делать обрисован.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2010, 13:48   #5
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Хм...интересно! Спасибо большое! Посмотрю может что-то придумаю!
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 26.08.2010, 22:07   #6
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от $T@LKER Посмотреть сообщение
Суть в следующем: нужно с определённого набора данных формировать XML файл определённой структуры так как заточен он под определённый сайт! И выходя из этого какие-то универсальные методы для этого не подойдут!
XML он и в африке XML, хоть под что он будь заточен, а правила его формирования стандартизованы и универсальные методы (т.е. готовые парсеры) подойдут как нельзя лучше. Используйте TXML(или другой готовый парсер XML) или подключайтесь к XMLDOM через OLE, описание методов XMLDOM найдете в интернете...
Rik вне форума Ответить с цитированием
Старый 05.09.2010, 14:38   #7
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

А если сгенирить парсер средствами Delphi (правда есть оговорка в 2009-2010 точно можно) с теми что раньше не в курсе в 7 точно нет такого.
Внимание! Проект в который добавляем парсер ну или вообще какой-нибудь проект должен быть открыт в пустую среду не даст сделать.
Делается через привожу пример для Delphi XE(под рукой только она) File-New-Other-XML-XML Data Binding.
Далее открывается мастер в первом окне указываем файл XML для которого генерим парсер.
Далее пробегаешся по элементам которые сгенерила Delphi и проверяешь типы. Т.к. работаю с 2010 студией иногда приходится менять тип UnicodeString на String.
Проверь обязательно типы для дат и чисел. Ну и в принципе все парсер готов.
Все процедуры чтения и записи уже присутствуют в модуле.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ООП. Как лучше поступить? Kn793 Свободное общение 15 05.04.2010 09:59
парсер XML, не видит XML тэги supercelt PHP 3 02.11.2009 19:18
в какой универ поступить L1NK. Помощь студентам 3 20.08.2008 20:42
Куда поступить в Питере? Nusya Свободное общение 3 24.04.2007 10:56