Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парс документа, НЕ работает не Один парсер 
:(
    Опции темы
Хрипа
Дата 21.3.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть такая строка:
<item:time>12.07.08</item:time> 
и такая
<item:title title:type="7">ПРИВЕТ МЕДВЕД</item:title> 
и 
 <item:shows shows:number="2000" shows:max="15000" />
КАк получить данные строки ?
полная структура выглядит так:
Код

<item>
<item:time>12.07.08</item:time> 
<item:title title:type="7">ПРИВЕТ МЕДВЕД</item:title> 
<item:shows shows:number="2000" shows:max="15000" />
</item>
Я не могу её Пропарсить не каким XML парсером!
Не получилось пропарсить из под:
xml_parser
simplexml
Кто что знаит помогите СПАСИБО!

АДМИНЫ, модераторы пожалуйста не переносите тему вы её переносите и не кто не отвечает на тему, создаю её уже 4 раз.
Спасибо за понемание.


Это сообщение отредактировал(а) Хрипа - 21.3.2008, 11:22
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
Canarat
Дата 21.3.2008, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Хрипа, а прочитать про то, что для атрибутов произвольного вида "attr:*" не существует встроенных namespace'в, и поэтому разбор XML-документа в соответствии со спецификацией невозможен, сложно было?

Добавлено через 1 минуту и 43 секунды
Вообще вся структура документа ужасна. Если же хочется баловаться с таким XML-кодом, используй
http://de.php.net/manual/en/function.simpl...thNamespace.php
PM MAIL   Вверх
Хрипа
Дата 21.3.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Canarat, я знаю что он не возможен 
Однако его надо разобрать и я вот собственно спрашую как это сделать ?
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
Canarat
Дата 21.3.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А я уже ответил на этот вопрос.

Добавлено через 55 секунд
Или вручную, посимвольным разбором. Так и веселее, и понятно станет, как правильно работать с XML.
PM MAIL   Вверх
Хрипа
Дата 21.3.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



О это уже лучши, однако пример накидать не можеш ?  smile

Добавлено @ 11:47
Мне не понятно вот эта запись:
Код

$result = $sxe->xpath('//c:title');
Что значат два слеша // перед именим атрибута ?

Это сообщение отредактировал(а) Хрипа - 21.3.2008, 11:47
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
Canarat
Дата 21.3.2008, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

$xml = <<<EOD
<book xmlns:item="http://example.org/itemt" xmlns:title="http://example.org/itemt" xmlns:shows="http://example.org/itemt">
<items>
<item:time>12.07.08</item:time>
<item:title title:type="7">help me find my brain</item:title>
<item:shows shows:number="2000" shows:max="15000" />
</items>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c', 'http://example.org/itemt');
$result = $sxe->xpath('//c:title');

foreach ($result as $title) {
  echo $title . "\n";
}

Дальше читать про XPath.

Добавлено через 1 минуту и 38 секунд
Это XPath Query, цитировать документацию по нему я не буду 
PM MAIL   Вверх
Хрипа
Дата 21.3.2008, 12:02 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Canarat, ну дак и какойже это пример ? ))

Имеимтся в веду пример под мою стркутуру
Код

<item>
<item:time>12.07.08</item:time> 
<item:title title:type="7">ПРИВЕТ МЕДВЕД</item:title> 
<item:shows shows:number="2000" shows:max="15000" />
</item>

Что бы вывело все элементы и с комментариями в коде
Примерно так:
Что бы получить аткой-то эемент надо писать так
за хорошое пояснение тока поднимают репутацию а не за ссылки и КОПИ паст smile
точной такойже пример и на php.net )

--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
mishaSL
Дата 21.3.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Хрипа, небольшой вопрос. Это точно весь XML документ (а не его часть)? И откуда ты его получил. Просто этот XML не валидный, у него не объявлено используемое пространство имен.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Хрипа
Дата 21.3.2008, 12:08 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



mishaSL
XML валидный Написано 2,0 
я просто вылажил сюда структура одного Item
Просто нет смысла флудить грудой XML в форум.
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
mishaSL
Дата 21.3.2008, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Хрипа, просто чтобы привести пример разбора твоего XML надо видеть xml version и xmlns. Можешь укоротить свой XML, но основную структуру то надо оставить.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Хрипа
Дата 21.3.2008, 12:50 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Кстати вот нашол пример анологичный:
http://www.jobs.ua/rss_vacancy/web_specialists/ukraine/
Точное такая RSS лента только название полей другие..
ВОт вам вся структура
Помогите пропарсить
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
mishaSL
Дата 21.3.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Хрипа, там сейчас сайт перестал открываться, так что проверить не могу.

Но примерно будет выглядеть так:
Код

<?php
$dom = DOMDocument::load('http://www.jobs.ua/rss_vacancy/web_specialists/ukraine/');
$dom->encoding = 'windows-1251';

$listItem = $dom->getElementsByTagName('item');

foreach($listItem as $item) {
    if ($item->hasChildNodes()) {
        foreach($item->childNodes as $pr) {
            print "localName: {$pr->localName}<br>";
            print "namespaceURI: {$pr->namespaceURI}<br>";
            print "prefix: {$pr->prefix}<br>";
            print "nodeName: {$pr->nodeName}<br>";
            print "nodeValue: {$pr->nodeValue}<br>";
            print "baseURI: {$pr->baseURI}<br>";
            print '---';
        }
    print "<hr>";
    }
}

?>


Если что не получится спрашивай.

Добавлено через 2 минуты и 12 секунд
Соответственно описание свойств и т.д. можно найти здесь:
http://de.php.net/manual/ru/ref.dom.php

Это всего лишь один из вариантов, так что разберешься можешь попробовать и другие.

Добавлено через 3 минуты и 57 секунд
и это лишнее:
Код

$dom->encoding = 'windows-1251';



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Хрипа
Дата 21.3.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



mishaSL  - Выручил, подсказал в каком направлении надо рыть.
И пример кстати довольно не плохой сразу отпала куча вопросов.
Спасибо.
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
mishaSL
Дата 21.3.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Хрипа, пожалуйста, обращайтесь smile

Добавлено через 51 секунду
Только тему еще пометьте решенной плиз smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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