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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2012, 16:18   #1
osminog
Пользователь
 
Аватар для osminog
 
Регистрация: 25.05.2009
Сообщений: 22
Сообщение работа с текстом XML

Добрый день, уважаемые программисты!

Вопрос тем, кто работал или работает с XML и Office Excel!

Имеется файл XML (привожу кусок фрагмента):
Код HTML:
..........
    <RRL_CASE>
      <ID>849bc1b3-5900-4e28-bba6-993156377de8</ID>
      <SN_POL>0293889775000336</SN_POL>
      <LASTNAME>Фамилия1</LASTNAME>
      <NAME>Имя1</NAME>
      <PATRONYMIC>Отчество1</PATRONYMIC>
      <SEX>Ж</SEX>
      <BDAY>2011-06-24</BDAY>
      <DOC>14</DOC>
      <DOC_SER>8014</DOC_SER>
      <DOC_NMB>418683</DOC_NMB>
      <ADDR_REG>80435</ADDR_REG>
      <REGION>Город1</REGION>
      <ADDR_TEXT>Адрес1</ADDR_TEXT>
      <CODE>25</CODE>
      <START>2011-06-24</START>
      <STOP>2014-06-24</STOP>
    </RRL_CASE>
..........
Нужно:
1. выбрать данный документ (открыть его)
2. перенести данные в Excel, естественно по столбцам, содержащие:
№ п/п (1 и т.д. по порядку ...)
SN_POL
LASTNAME
NAME
PATRONYMIC
SEX
BDAY
DOC
DOC_SER
DOC_NMB
ADDR_REG
REGION
ADDR_TEXT
CODE
START
STOP

3. По окончанию, остановить процесс переноса данных, сохранить в Excell с названием открытого файла и открыть сам файл Excel.

Буду рад любой информации, что бы знать, хоть в какую сторону "копать"!!!

Я никогда не работал с форматом XML, а тем более перевод его в Excel
Кто знает, помогите, пожалуйста! Переработать данный файл в 450 000 строк руками очень тяжело, а работу эту повесили на меня (((

Заранее, спасибо!
подсел на MS C++

Последний раз редактировалось osminog; 29.07.2012 в 16:30.
osminog вне форума Ответить с цитированием
Старый 29.07.2012, 16:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А разве в Экзеле нельзя открыть XML?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.07.2012, 16:56   #3
osminog
Пользователь
 
Аватар для osminog
 
Регистрация: 25.05.2009
Сообщений: 22
По умолчанию

Exel позволяет открыть, но так интересно!
подсел на MS C++
osminog вне форума Ответить с цитированием
Старый 29.07.2012, 17:01   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Понял
Из всех примеров работы с XML остался только корявастенький
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls;

type
  TForm1 = class(TForm)
    XMLDocument1: TXMLDocument;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
{var e,n:IXMLNode;
begin
 XMLDocument1.LoadFromFile('D:\Ok\Aqua.xml');
 n:=XMLDocument1.DocumentElement.ChildNodes[0];
 if n<>nil then repeat
  e:=n.ChildNodes[1];
  ListBox1.Items.Add(e.NodeValue);
  n:=n.NextSibling;
 until n=nil;
end;
}
var f,e,n:IXMLNode;     i:integer;
begin
 XMLDocument1.LoadFromFile('C:\Documents and Settings\5097\Рабочий стол\B0000183.xml');
 n:=XMLDocument1.DocumentElement.ChildNodes[0];
 if n<>nil then repeat
  e:=n.ChildNodes[0];
  f:=n.ChildNodes[0];
  i:=0;
  while (e.ChildNodes.Count>i)and(f.Attributes['FieldName']<>'Number contract') do begin
   f:=e.ChildNodes[i];
   inc(i);
  end;
  ListBox1.Items.Add(f.NodeName+' '+f.NodeValue);
  n:=n.NextSibling;
 until n=nil;
end;
end.
Ключевые слова - XMLDocument1 DocumentElement и ChildNodes
Удачного поиска.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.07.2012, 17:30   #5
osminog
Пользователь
 
Аватар для osminog
 
Регистрация: 25.05.2009
Сообщений: 22
Хорошо

Цитата:
Сообщение от Stilet Посмотреть сообщение
Понял
Из всех примеров работы с XML остался только корявастенький
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls;

type
  TForm1 = class(TForm)
    XMLDocument1: TXMLDocument;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
{var e,n:IXMLNode;
begin
 XMLDocument1.LoadFromFile('D:\Ok\Aqua.xml');
 n:=XMLDocument1.DocumentElement.ChildNodes[0];
 if n<>nil then repeat
  e:=n.ChildNodes[1];
  ListBox1.Items.Add(e.NodeValue);
  n:=n.NextSibling;
 until n=nil;
end;
}
var f,e,n:IXMLNode;     i:integer;
begin
 XMLDocument1.LoadFromFile('C:\Documents and Settings\5097\Рабочий стол\B0000183.xml');
 n:=XMLDocument1.DocumentElement.ChildNodes[0];
 if n<>nil then repeat
  e:=n.ChildNodes[0];
  f:=n.ChildNodes[0];
  i:=0;
  while (e.ChildNodes.Count>i)and(f.Attributes['FieldName']<>'Number contract') do begin
   f:=e.ChildNodes[i];
   inc(i);
  end;
  ListBox1.Items.Add(f.NodeName+' '+f.NodeValue);
  n:=n.NextSibling;
 until n=nil;
end;
end.
Ключевые слова - XMLDocument1 DocumentElement и ChildNodes
Удачного поиска.
Спс, начало понятное. Будем копать дальше!
подсел на MS C++
osminog вне форума Ответить с цитированием
Старый 30.07.2012, 07:55   #6
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Много примеров и вариантов обработки XML есть тут
astecenko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с текстом Lepricon69 Помощь студентам 24 12.11.2010 18:08
XML в Delphi ошибка с русским текстом domik Помощь студентам 6 28.05.2009 17:50
Работа с текстом. J0n1cK Паскаль, Turbo Pascal, PascalABC.NET 4 09.05.2009 00:29
работа с текстом... Poll Помощь студентам 5 23.01.2009 11:43
Работа с текстом(C++) silent_witcher Помощь студентам 1 13.12.2008 17:55