Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
 Аватар для DokRaziel
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 50

Поиск и вывод данных из xml

26.10.2016, 11:52. Показов 2385. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите найти в xml файле и вывести в ShowMessage(ФИО и дату рождения).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2016, 11:52
Ответы с готовыми решениями:

Поиск в xml и вывод результата!
Люди добрые,можете помочь?! Проблема заключается в следующем,есть БД Postgresql с кодировкой win-1251 (другая кодировка не выставляется)...

Поиск и удаление данных из XML базы данных
Есть база данных XML подобного толка <YourMusicLibrary> <Album> <Artist>Darkthrone</Artist> <Name>A Blaze in the...

Вывод данных XML
Добрый день, есть база с таблицей из которой я выгружаю данные, <? require_once...

36
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
27.10.2016, 08:30
Студворк — интернет-сервис помощи студентам
В общем, вот что я накопал на данный момент: сам файл создан для того, чтобы его можно было читать и через интернет-браузер, и через Word. Для этого применяется таблица стилей. Таблица стилей берется с сайта Росреестра (желающие могут открыть файл блокнотом и посмотреть, там есть ссылка). Все это называется XSLT. Сейчас ищу как можно сделать так, чтобы он Word сразу брал нужную таблицу стиля, а не мучил "моск" своими вопросами.
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
27.10.2016, 08:42
я же в #6 написал способы

или вы настолько не программист, что вам готовое нужно?
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
27.10.2016, 08:52
qwertehok, тут вопрос к делфи вообще не имеет никакого отношения. По крайней мере, насколько я понял суть его запроса. И к xml он имеет весьма посредственное отношение.

Краткая суть после разбора полетов (с учетом прошлых его тем): человек получает файл-ответ от Росреестра. Этот файл сделан в виде xml. Читать его просто так - сплошная беда. Но файл сгенерирован Вордом (на самом деле не Вордом, но не суть), и Вордом же без проблем читается, ибо программистский мозг Росреестра также дал файл стиля (читай, ключ) к файлу xml. И если этот файл стиля применить к xml - то файл открывается точно в том виде, как и должен. Остается его только сохранять. И делфи тут вообще не нужен и даже вреден, т.к. все это должно и нужно обрабатывать стандартными средствами Ворда, все для того и задумывалось. И, в целом, не было бы проблемы, как таковой - открой файлик, выбери формат стиля и сохрани, но этих файлов - 100 штук, и вот тут делфи может понадобиться. Но чтобы сохранять в правильном формате надо как-то заставить либо файл открываться автоматически с нужным файлом стиля (что сейчас не происходит), либо как-то этот файл стиля присваивать через OLE, что пока неизвестно как делается.

Вот, в кратце, суть проблемы. Поэтому я и говорю: тут нет делфи, как такового. Нет xml, как такового и парсить его не надо. Тут чистой воды Ворд, и с вопросом по ворду и по применению XSLT ему бы стоило обратиться в нужный раздел форума, и получить ответ, а потом вернуться к нам с вопросом об автоматическом сохранении. Но поскольку сама задача показалась мне интересной, я тоже ищу ее решение.
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
27.10.2016, 08:57
это все понятно, но если у ТС 100 xml файлов что ему делать?
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
27.10.2016, 08:58
qwertehok, на данный момент как раз вот этот вопрос решить проще всего. Пересохранение файла с помощью OLE, на мой взгляд, достаточно тривиально.
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
27.10.2016, 09:01
но зачем? (это я про работу с вордом с помощью OLE)
почему бы не выбрать нужные данные из xml через простейший pos\copy, сформировать FastReport'ом отчет и сохранить его как rtf

ИМХО это быстрее
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
27.10.2016, 09:04
qwertehok, потому что в файле таблицы стилей хранится информация, например, о размере шрифта, его форматировании, отступах и т.д., и без этого файла восстановить данные в их исходном виде не представляется возможным. Да, этот парсинг сработает, но файл не будет представлять из себя справку установленного образца.
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
27.10.2016, 09:09
Цитата Сообщение от Nanotentacle Посмотреть сообщение
но файл не будет представлять из себя справку установленного образца.
вы серьезно?

уважаемый ТС, что вам в итоге нужно?
справка, установленного образца? (ее конечно тоже можно сделать в FR) или просто список ФИО - дата рождения?
0
27.10.2016, 09:27

Не по теме:

qwertehok, ну а что поделать... Я взялся и прочитал мысли автора. И извлек оттуда точную постановку задачи. У меня даже навык телепатии прокачался на +5 пунктов. Теперь смогу заглядывать в области либидо.

0
 Аватар для DokRaziel
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 50
28.10.2016, 11:39  [ТС]
Получать справку установленного образца было бы замечательно(особенно если это будет автоматом применяться к 100 файлам), но если это не получится, можно и получать данные из xml файла. Но так как я(как я уже говорил ранее) никогда ранее не сталкивался с xml файлами, как из указанных файлов получать необходимую информация (ФИО, дату рождения и наличие или отсутствия информации) не представляю возможным. Если все же получится, что в данном случае можно автоматом получать необходимые данные только путем парсинга очень вас ПРОШУ показать на примере приложенного файла как извлечь данные.
Заранее БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ спасибо
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
28.10.2016, 14:14
Лучший ответ Сообщение было отмечено DokRaziel как решение

Решение

Получаем в ListBox1 список файлов
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button2Click(Sender: TObject);
var
  FileList : TStringDynArray;
  s : string;
begin
  FileList := TDirectory.GetFiles('c:\temp\', '*.xml', TSearchOption.soAllDirectories);
  for s in FileList do ListBox1.items.Add(s);
end;
Обрабатываем список
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var s:string;
    F,I,O,D:string;
    sl:Tstringlist;
    j:integer;
begin
  for j := 0 to ListBox1.Items.Count-1 do
  begin
    sl:=TStringList.Create;
    sl.LoadFromFile(ListBox1.Items[j]);
    F:=copy(sl.Text, pos('<Surname>',sl.Text)+9, length(sl.Text));
    delete(F,pos('</Surname>', F), length(F));
    I:=copy(sl.Text, pos('<First>',sl.Text)+7, length(sl.Text));
    delete(I,pos('</First>', I), length(I));
    O:=copy(sl.Text, pos('<Patronymic>',sl.Text)+12, length(sl.Text));
    delete(O,pos('</Patronymic>', O), length(O));
 
    D:=copy(sl.Text, pos('<DateBirth>',sl.Text)+11, length(sl.Text));
    delete(D,pos('</DateBirth>', D), length(D));
 
    s:=F+'|'+I+'|'+O+'||'+D;
    ListBox2.Items.Add(s);
    sl.Free;
  end;
end;
1
 Аватар для DokRaziel
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 50
28.10.2016, 14:28  [ТС]
Большое спасибо, завтра проверю.
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
28.10.2016, 14:29
DokRaziel, я проверил
сделал 10 файлов с разными ФИО - работает. могу скрин показать
1
 Аватар для DokRaziel
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 50
28.10.2016, 14:57  [ТС]
qwertehok, я в Вас не сомневаюсь, еще раз спасибо.
0
 Аватар для DokRaziel
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 50
29.10.2016, 11:48  [ТС]
qwertehok, здравствуйте, я проверил Ваш код и у меня некоторые файлы почему-то выходят в виде белеберды.
Подскажите в чем причина.
Вложения
Тип файла: rar data.rar (1.8 Кб, 2 просмотров)
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
29.10.2016, 13:11
допишите вот такую строку
Delphi
1
sl.LoadFromFile(ListBox1.Items[j],TEncoding.UTF8);
1
 Аватар для DokRaziel
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 50
29.10.2016, 13:48  [ТС]
qwertehok, спасибо все работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2016, 13:48

Вывод данных с XML
Как вывести данные из XML в виде строк в qt

Вывод данных из xml
Добрый день. Как считывать данные из xml? XML у меня такой &lt;?xml version=&quot;1.0&quot; encoding=&quot;windows-1251&quot; ?&gt; - &lt;polkin&gt; ...

Вывод данных в xml
есть таблица,первые две колонки это фио студента и номер группы, остальные это предметы, их можно добавлять. Когда я вывожу в xml мне...

Вывод данных из SQL в XML
Надо вывести из 2-х таблиц данные в XML файл. 1)Таблица 1-&quot;Расход&quot;, Таблица 2-&quot;Делизация Расхода&quot;. Таблица &quot;Расход&quot;...

Вывод данных из БД на MySQL в XML файл
Добрый день уважаемые форумчане! Обращаюсь к вам за помощью, возникла такая задача, с помощью SQL запроса в СУБД MySQL выводить информацию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru