Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Парсинг xml на php / 11 сообщений из 11, страница 1 из 1
25.09.2013, 10:20
    #38406865
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
Подскажите пожалуйста как распарсить xml вида
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
<?xml version="1.0" encoding="UTF-8" ?> 
- <root>
- <value>
- <Item>
- <key0>
- <Operation>
- <key0>
  <OperTypeID>1</OperTypeID> 
  <OperCtgID>2</OperCtgID> 
  <OperName>Приём</OperName> 
  <DateOper>31.08.2012 00:00:00</DateOper> 
  <IndexOper>392972</IndexOper> 
  </key0>
- <key1>
  <OperTypeID>2</OperTypeID> 
  <OperCtgID>1</OperCtgID> 
  <OperName>Вручение</OperName> 
  <DateOper>15.09.2012 00:00:00</DateOper> 
  <IndexOper>399760</IndexOper> 
  </key1>
</Item>
  <FileName>7715800174_1_20130603_1000_In.xml</FileName> 
  <FileNumber>0</FileNumber> 
  </value>
  </root>
...
Рейтинг: 0 / 0
25.09.2013, 10:38
    #38406894
seejil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
Можно через simplexml, вот так примерно
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
$string = <<<XML
<?xml version='1.0'?> 
<root>
<value>
	<Item>
	<key0>
	  <OperTypeID>1</OperTypeID> 
	  <OperCtgID>2</OperCtgID> 
	  <OperName>Приём</OperName> 
	  <DateOper>31.08.2012 00:00:00</DateOper> 
	  <IndexOper>392972</IndexOper> 
	  </key0>
	<key1>
	  <OperTypeID>2</OperTypeID> 
	  <OperCtgID>1</OperCtgID> 
	  <OperName>Вручение</OperName> 
	  <DateOper>15.09.2012 00:00:00</DateOper> 
	  <IndexOper>399760</IndexOper> 
	  </key1>
</Item>
	  <FileName>7715800174_1_20130603_1000_In.xml</FileName> 
  	<FileNumber>0</FileNumber> 
  </value>
  </root>
XML;

$xml = simplexml_load_string($string);

print_r($xml);
...
Рейтинг: 0 / 0
25.09.2013, 12:37
    #38407065
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
simplexml где скачать для php4
...
Рейтинг: 0 / 0
25.09.2013, 13:13
    #38407121
seejil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
хм:) Ну этот модуль включен в php 5 и требует libxml. А так как у вас php4, что очень устарело. Попробуйте воспользоваться http://pear.php.net/package/XML_Parser либо написать самим простой парсер файла.
...
Рейтинг: 0 / 0
25.09.2013, 13:39
    #38407165
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
Chek_Fedorsimplexml где скачать для php4
php4 безнадежно устарел и нигде не используется. странно что вам он еще нужен.
качайте пхп 5.3 и или выше. и наслаждайтесь. там все что вам нужно уже встроено и прекрасно работает
...
Рейтинг: 0 / 0
25.09.2013, 13:52
    #38407191
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
r uChek_Fedorsimplexml где скачать для php4
php4 безнадежно устарел и нигде не используется. странно что вам он еще нужен.
качайте пхп 5.3 и или выше. и наслаждайтесь. там все что вам нужно уже встроено и прекрасно работает
Ставилось очень давно и все писалось под php 4.
Нашел класс вроде все работает только вот не придумал как "выцарапать" key'и т.е.
Код: php
1.
print_r($xml->value->Item->key0)


тут получаем
SimpleXMLElement Object
(
[OperTypeID] => 1
[OperCtgID] => 2
[OperName] => Прием
[DateOper] => 31.08.2012 00:00:00
[IndexOper] => 392972
)
Но у меня не известное количество key0...x
Хотя просто тупа переберать с проверкой пока не наткнемся на пустые значения хотя это черевато потерей данных т.к. могут попасться и пустые где-нибудь в середине
...
Рейтинг: 0 / 0
25.09.2013, 14:11
    #38407216
seejil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
Не вижу проблем с потерей данных, просто пробежаться в цикле по всем данным.
...
Рейтинг: 0 / 0
25.09.2013, 14:46
    #38407290
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
seejilНе вижу проблем с потерей данных, просто пробежаться в цикле по всем данным.
Как? если я не знаю конечный key
...
Рейтинг: 0 / 0
25.09.2013, 15:24
    #38407370
seejil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
foreach
...
Рейтинг: 0 / 0
05.10.2013, 18:49
    #38417774
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
seejilforeach
Я опять к своим "баранам" как его использовать? если получаю
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SimpleXMLElement Object
(
    [key0] => SimpleXMLElement Object
        (
            [OperTypeID] => 1
            [OperCtgID] => 2
            [OperName] => ц&#9567;ц&#9619;ц&#9524;бёц&#9608;
            [DateOper] => 31.08.2012 00:00:00
            [IndexOper] => 392972
        )

    [key1] => SimpleXMLElement Object
        (
            [OperTypeID] => 2
            [OperCtgID] => 1
            [OperName] => цЇц&#9619;ц•ц·ц&#9496;ц&#9612;ц&#9524;ц&#9496;
            [DateOper] => 15.09.2012 00:00:00
            [IndexOper] => 399760
        )

)


если мне нужно перебрать все [key]
...
Рейтинг: 0 / 0
06.10.2013, 02:38
    #38417925
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml на php
Спасибо всем! Разобрался)))))
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Парсинг xml на php / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]