Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
DKENT
0 / 0 / 0
Регистрация: 07.02.2011
Сообщений: 5
1

Парсинг XML страницы

07.02.2011, 18:40. Просмотров 1841. Ответов 6
Метки нет (Все метки)

Здрастуйте возникла проблема при написании софта!!!

Нужно чтобы из данного кода Цифры выделеные Красным парсились и выводились в Label
Для каждой цифры свой Label!

<collection>
<id>1</id>
<city name="Krasnoyarsk" display_order="1">1</city>

<level>192</level>
<complete>1</complete>
<cell>
<id>1</id>
<num>19</num>
</cell>
<cell>
<id>2</id>
<num>0</num>
</cell>
<cell>
<id>3</id>
<num>2</num>
</cell>
<cell>
<id>4</id>
<num>36</num>
</cell>
<cell>
<id>5</id>
<num>17</num>
</cell>
<cell>
<id>6</id>
<num>7</num>
</cell>
<cell>
<id>7</id>
<num>44</num>
</cell>
<cell>
<id>8</id>
<num>192</num>
</cell>
</collection>
Покажите пожалуйста на примере!!!
Заранее благодарен!!!


Проблему нужно решить быстро!!!
Тому кто поможет дам 10 7 значных uins!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2011, 18:40
Ответы с готовыми решениями:

Парсинг XML документа
Добрый день! у меня есть xml файл и мне его надо разобрать и положить в...

Парсинг страницы
Возникли трудности с парсингом страници. Я авторизуюся на сайте через...

Парсинг страницы
В данном примере мне надо спарсить пользователей сайта, которые в сети, но...

Парсинг страницы
Как сохранить в txt код страницы, или сохранить полностью весь код в memo?...

Парсинг с страницы
Привет всем! Обращаюсь к вам с элементарным вопросом. Как можно спарсить...

6
kiki
0 / 0 / 0
Регистрация: 07.02.2011
Сообщений: 14
07.02.2011, 19:52 2
смотри в делфи есть компонент XML, ищи про него в гугле, с помощью него вроде очень быстро накарябать будет
0
DKENT
0 / 0 / 0
Регистрация: 07.02.2011
Сообщений: 5
07.02.2011, 20:00  [ТС] 3
В том то и дело что неполучаеться с помошью него!!!
Label1.Caption := XMLDocument1.DocumentElement.ChildNodes[30].Text;

30 номер строки!!!!
<num>19</num>
Невыводиться нечего выдает ошибку!!!
0
kiki
0 / 0 / 0
Регистрация: 07.02.2011
Сообщений: 14
07.02.2011, 20:42 4
у XML всегда дожен быть заголовок что это XML
сравни с любым другим XML
поэтому не получаетцо
в этом случае придется писать свой парсер, это уже не XML а гибрид HTML

Добавлено через 2 минуты
используй конструкцию
Delphi
1
2
3
4
5
while Pos('<',str)<>0 do
begin
//последовательно все удаляю, сохраняю то что нужно
//str это твой xml сохраненный в переменную стринг
end;
Добавлено через 5 минут
я писал огроменную библиотеку для работы со строками и данными
оффигенная получилась и простая
вот только я в сомнениях на счет твоих знаний
если кодишь на норм уровне, то библиотеку модуль напишу

чтобы работать с модулем нужно представить строку в виде строки с одинаковыми повторяющими элементами, каждый такой элемент делит строку на части
например обработать > а потом <
короче объяснять долго

Добавлено через 4 минуты
хотя попробую по другому обьяснить
допустим есть строка
1/2/3/4/5/6/7/8/9/0
чтобы поучить доступ к числам достаточно используя мой модуль ввести разделитель / и порядковый номер элемента между разделителем, например 3 - на выходе получим 3
примерно также можно обработать и твой псевдо XML

в общем я полностью переписал стандартные функции Delphi заменив их на более простые чем то что предлагает борланд
в твоем случае я бы не парил мозги
а использовал 3 стандартные функции
Delphi
1
2
3
Copy()
Delete()
Pos()
0
DKENT
0 / 0 / 0
Регистрация: 07.02.2011
Сообщений: 5
07.02.2011, 20:50  [ТС] 5
Это XML просто был выложен не полный код!

<?xml version="1.0" encoding="UTF-8"?>

<data>
<neededcell>
<cell cid="10" id="5"></cell>
<cell cid="12" id="3"></cell>
<cell cid="11" id="4"></cell>
<cell cid="10" id="6"></cell>
<cell cid="11" id="5"></cell>
<cell cid="11" id="6"></cell>
<cell cid="12" id="6"></cell>
<cell cid="10" id="1"></cell>
<cell cid="10" id="3"></cell>
<cell cid="10" id="4"></cell>
</neededcell>

<collection>
<id>1</id>
<city name="Город" display_order="1">1</city>

<rewards>
<reward repeated="1" type="money" slot="101">50</reward>
<reward repeated="1" type="rating" slot="102">50</reward>
</rewards>

<level>234</level>
<complete>1</complete>
<cell>
<id>1</id>
<num>9</num>
</cell>
<cell>
<id>2</id>
<num>0</num>
</cell>
<cell>
<id>3</id>
<num>1</num>
</cell>
<cell>
<id>4</id>
<num>19</num>
</cell>
<cell>
<id>5</id>
<num>3</num>
</cell>
<cell>
<id>6</id>
<num>2</num>
</cell>
<cell>
<id>7</id>
<num>42</num>
</cell>
<cell>
<id>8</id>
<num>234</num>
</cell>
</collection>
0
kiki
0 / 0 / 0
Регистрация: 07.02.2011
Сообщений: 14
07.02.2011, 20:58 6
ладно, так и быть пишу код
правда очень лень было
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
str:string;
iii:integer;
 
 
str:='XML';//здесь код
iii:=1;
while Pos('num>',str)<>0 do
begin
delete(str,1,Pos('num>',str)+4);
Label+iii.Caption=Copy(str,1,Pos('<',str)-1);
iii:=iii+1;
end;
вот чтото типа готового примера
но писал без компилятора по памяти поэтому мог ошибиться в цифрах и в подстановке +iii
цыфры можно менять на +1 в первой строке или на -1
во второй строке на -1 либо +1

Добавлено через 1 минуту
если ошибка
пробуй и меняй примерно так
Delphi
1
2
3
4
5
6
7
delete(str,1,Pos('num>',str)+4);
 
или
delete(str,0,Pos('num>',str)+4);
 
или
delete(str,1,Pos('num>',str)+3);
Добавлено через 45 секунд
Delphi
1
2
3
4
5
6
7
Copy(str,1,Pos('<',str)-1);
 
или
Copy(str,0,Pos('<',str)-1);
 
или
Copy(str,1,Pos('<',str));
0
DKENT
0 / 0 / 0
Регистрация: 07.02.2011
Сообщений: 5
07.02.2011, 21:03  [ТС] 7
kiki, Дай свою icq !!!
0
07.02.2011, 21:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2011, 21:03

Парсинг html страницы
Всем здрасти. есть страница это некий тест в нем повторяется такая часть кода...

Парсинг html-страницы
Код странницы для обработки! &lt;OL&gt; &lt;LI&gt;&lt;A class=header title=&quot;Любимое...

Парсинг HTML страницы
Всем доброго времени суток. Нужно заполнить таблицу данными о диодах с веб...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru