Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение из XML файла средствами делфи, XML и Delphi 
:(
    Опции темы
Anatoliy19
Дата 19.11.2011, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



доброго времени суток всем вам) недавно начал разбираться в xml и тут появился такой вопрос нужно брать из xml-базы данных значения на любом уровне вложенности а также изменять их и записывать. как это сделать? 
например дан фрагмент кода:

Код

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<INVENTORY xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<BOOK>
<TITLE>Иван</TITLE>
<AUTHOR>Мартынов</AUTHOR>
<BINDING>Иванович</BINDING>
<PAGES>668774</PAGES>
</BOOK>
<BOOK>
<TITLE>Едвард</TITLE>
<AUTHOR>разумович</AUTHOR>
<BINDING>Купитманович</BINDING>
<PAGES>234234</PAGES>
</BOOK>



как мне выбрать Иван Мартынов Иванович??


M
MetalFan
Пользуйтесь кнопкой КОД!!!


Это сообщение отредактировал(а) MetalFan - 21.11.2011, 09:39
PM MAIL   Вверх
MetalFan
Дата 19.11.2011, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



изучайте язык запросов XPath или XQuery.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
14SatanA88
Дата 21.11.2011, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



TXMLDocument
в справке и в гугле исчерпывающая информация
PM MAIL ICQ   Вверх
RomanEEP
Дата 21.11.2011, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



PM MAIL   Вверх
MetalFan
Дата 21.11.2011, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



RomanEEP, чем он лучше стандартного, кроме того, что он платный?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Anatoliy19
Дата 21.11.2011, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я распарсил текст xml документа но я не понимаю как в цикле вывести их, например, в LIstBox

Код

procedure TForm1.btn1Click(Sender: TObject);
var i: Integer;
begin
xmldcmnt1.Active := true;
xmldcmnt1.LoadFromFile(ExtractFileP ath(Application.ExeName) + '1.xml');
i:=1 to xmldcmnt1.DocumentElement.ChildNode s[1]
edt1.Text := VarToStr(xmldcmnt1.DocumentElement. ChildNodes[0].ChildNodes['serverid'].text); {это из первого уровня}
xmldcmnt1.Active := false;
end;


если надо вот код xml документа:

Код

<?xml version="1.0" encoding="utf-8"?>
<response>
<meta>
<timestamp>2010-03-21T10:34:35+00:00</timestamp>
<serverid>ebb667fe</serverid>
<requestid>192.168.0.105.4ba5f63b8e 49c7.34267757</requestid>
</meta>
<results>
<url0>
<url><![CDATA[http://www.cheapukadds.co.uk/images/SARS/Nedbank/index.html]]></url>
<in_database>true</in_database>
<phish_id>948253</phish_id>
<phish_detail_page><![CDATA[http://www.phishtank.com/phish_detail.php?phish_id=948253]]></phish_detail_page>
<verified>true</verified>
<verified_at>2010-03-20T10:35:52+00:00</verified_at>
<valid>true</valid>
</url0>
</results>
<Inventory>
<author>Иванов</author >
</Inventory>
</response>


M
Snowy
Пользуйтесь кнопкой Код


Это сообщение отредактировал(а) Snowy - 21.11.2011, 19:25
PM MAIL   Вверх
Snowy
Дата 21.11.2011, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Марко Кэнту - Delphi 7 для профессионалов
Глава 22 - работа с XML
XML Document в TreeView

Код
procedure TFormXmlTree.btnLoadClick(Sender: TObject);
begin
  OpenDialog1.InitialDir := ExtractFilePath (Application.ExeName);
  if OpenDialog1.Execute then
  begin
    XMLDocument1.LoadFromFile(OpenDialog1.FileName);
    Treeview1.Items.Clear;
    DomToTree (XMLDocument1.DocumentElement, nil);
    TreeView1.FullExpand;
  end;
end;
   
procedure TFormXmlTree.DomToTree (XmlNode: IXMLNode; TreeNode: TTreeNode);
var
  I: Integer;
  NewTreeNode: TTreeNode;
  NodeText: string;
  AttrNode: IXMLNode;
begin
  // skip text nodes and other special cases
  if XmlNode.NodeType <> ntElement then
    Exit;
  // add the node itself
  NodeText := XmlNode.NodeName;
  if XmlNode.IsTextElement then
    NodeText := NodeText + ' = ' + XmlNode.NodeValue;
  NewTreeNode := TreeView1.Items.AddChild(TreeNode, NodeText);
  // add attributes
  for I := 0 to xmlNode.AttributeNodes.Count - 1 do
  begin
    AttrNode := xmlNode.AttributeNodes.Nodes[I];
    TreeView1.Items.AddChild(NewTreeNode,
      '[' + AttrNode.NodeName + ' = "' + AttrNode.Text + '"]');
  end;
  // add each child node
  if XmlNode.HasChildNodes then
    for I := 0 to xmlNode.ChildNodes.Count - 1 do
      DomToTree (xmlNode.ChildNodes.Nodes [I], NewTreeNode);
end;

PM MAIL   Вверх
DYUMON
Дата 22.11.2011, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



можешь порытся в нете повнимательнее я как то искал материал нашел чей то парсер он существенно сократил количество кода.


--------------------
Всех программистов надо посадить на целероны, что бы впредь головой думали что пишут.
user posted image
PM MAIL ICQ Skype   Вверх
RomanEEP
Дата 23.11.2011, 13:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(MetalFan @  21.11.2011,  16:19 Найти цитируемый пост)
RomanEEP, чем он лучше стандартного, кроме того, что он платный?

Он абсолютно бесплатный.  Если почитать чуть внимательнее, то можно заметить, что за плату предоставляется техподдержка.

А лучше он тем что он намного удобнее и приятнее в работе. Код при работе с ним намного компактней и понятней. Он предоставляет удобные средства работы с xml полями как со строками, числами итп, обеспечивая автоматическую конвертацию. Он нативный для дельфи и используют все конвенции принятые в Delphi. Помимо этого реализован binary xml - т.е xml документ сохраняется в двоичном виде обеспечиваю высокую скорость чтения-записи а при необходимости сохраняется в обычном текстовом виде.

Это сообщение отредактировал(а) RomanEEP - 23.11.2011, 13:15
PM MAIL   Вверх
MetalFan
Дата 23.11.2011, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



RomanEEP, ого... пошел поизучать... з.ы. а исходники в комплекте?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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