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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2014, 01:29   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
Вопрос Спарсить данные из тега XML

Нужно спарсить с этого:

Код:
<response>
<1_tag>блаблабла</1_tag>
<city list="true">
<center>
<2_tag>блаблабла</2_tag>
<3_tag>блаблабла</3_tag>
<4_tag>блаблабла</4_tag>
<b>блаблабла (текст русский)</b> - Вот это надо спарсить
<div>
<5_tag>блаблабла</5_tag>
<6_tag>блаблабла</6_tag>
<7_tag>блаблабла</7_tag>
</div>
</center>
Пробовал делать так, получал в ответ правильный тег <b></b>

Код:
var
sw:WideString;
begin
sw:=Form1.XMLDocument1.DocumentElement.ChildNodes['b'].XML;
ShowMessage(sw);
end;
Соответственно по логике чтобы получить данные этого тега пробовал делать так

Код:
var
sw:WideString;
begin
sw:=Form1.XMLDocument1.DocumentElement.ChildNodes['b'].Text;
ShowMessage(sw);
end;
В итоге получал пустое поле...

Последний раз редактировалось FleXik; 19.10.2014 в 01:35.
FleXik вне форума Ответить с цитированием
Старый 19.10.2014, 02:00   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
FDoc.DocumentElement.SelectSingleNo de('\\response\city\center\b').text
Учись студент, XPath полезен.

Не MSXML парсеры не умеют XPath и в этом их проигрыш
Человек_Борща вне форума Ответить с цитированием
Старый 19.10.2014, 02:07   #3
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Человек_Борща, может все таки можно используя стандартный XML спарсить?
FleXik вне форума Ответить с цитированием
Старый 19.10.2014, 02:12   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Так стандартный и есть MSXML
Человек_Борща вне форума Ответить с цитированием
Старый 19.10.2014, 02:14   #5
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Так стандартный и есть MSXML
я нифига из ваших слов не понял.. Xpath это что? сторонный компонент? или он входит в стандартный XML компонент?
FleXik вне форума Ответить с цитированием
Старый 19.10.2014, 02:21   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Спать ночью надо

Читайте про selectSingleNode

XPath возможность добраться до любого узла в XML одной строкой(как путь к файлу), вместо того чтобы через 100500 циклов проворачиваться и выдергивать значения по одному.

Реализацию этого видел пока только у MSXML, что печально.
Человек_Борща вне форума Ответить с цитированием
Старый 19.10.2014, 02:26   #7
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Человек_Борща, спасибо, поспишь тут с этим програмным геморроем...
FleXik вне форума Ответить с цитированием
Старый 19.10.2014, 02:29   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
Человек_Борща, спасибо, поспишь тут с этим програмным геморроем...
Не-не. Это утром будет гемор "Какую же я х***** написал!!11"
Человек_Борща вне форума Ответить с цитированием
Старый 19.10.2014, 02:39   #9
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

все, я уже решил эту фигню еб**** (слово "фигня" не мат), я парсил раньше обычной функцией парсинга, но получалось так что у меня знак > был в виде #62; но сейчас-то я понял что моя ошибка была в том что достаточно было сделать HTMLDecode (в uses HTTPApp) только поставить в правильном месте, я и знал что это возможно но меня эта мелочь с #62; бесила и я прицепился к ChildNodes, проблему решил функцией обычного парсинга, всегда ее до этого использовал и она меня еще никогда не подводила.

Последний раз редактировалось FleXik; 19.10.2014 в 02:43.
FleXik вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление XML тега [Smarik] C# (си шарп) 1 13.09.2013 08:09
Спарсить данные с кукисов snip4ik Работа с сетью в Delphi 3 05.03.2013 21:34
Скрипт конвертера валют или как корректно спарсить xml miscwrk JavaScript, Ajax 1 22.04.2012 06:11
Как в xml документе отредактировать имя тега? Ecosasha Общие вопросы Delphi 6 28.08.2011 10:52
Спарсить строку (скопировать до и после пробела данные) sxcine Помощь студентам 3 10.11.2010 19:22