Перейти к содержимому



Купить ссылку здесь
Фотография

Проблема при парсинге XML

Форум ZiSMO.biz
16
Сообщений в теме: 16

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

Доброго времени суток!
Возникла проблема при парсинге xml данных
Дело в том, что xml прописывает html теги вместе с текстом, как сделать так, чтобы xml не переписывала теги в одну кучу с тегами html в виде текста ? 
Тег <attention> не воспринимается парсером и прописывается вместе с текстом (в виде текста), как запретить парсеру копировать данный тег в сам текст ? 
Или можно через php запретить использовать на моем сайте данный тег ? 





9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

OFFLINE Отправлено

instaprof
группа пользователя
  • Онлайн:1д 7ч 25м
2

Вот не большой пример тебе, как я разбирал

 

$xml = file_get_contents('php://input'); // тут я получаю ответ в формате xml
$str = strtok($xml , "\n");
parse_str($str, $result);
 
echo $result['amount'];

Сообщение отредактировал instaprof: 05 07 2018 - 16:54

    • 1
  • Наверх

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

 

Вот не большой пример тебе, как я разбирал

 

$xml = file_get_contents('php://input'); // тут я получаю ответ в формате xml
$str = strtok($xml , "\n");
parse_str($str, $result);
 
echo $result['amount'];

 

Создается xml файл в папку cache/pay, но на сайте есть тег <attention> в html верстке 
И на моем сайте данный тег, при xml парсинге вот в таком виде: <attention>---------------------------------

Сообщение отредактировал Vl-ad-im-ir: 08 07 2018 - 13:11

9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

Рекламный пост

OFFLINE Отправлено

Pleorin
группа пользователя
  • Онлайн:8д 9ч 43м
40

*
Популярное сообщение!

sms-online.pro - новый, динамически развивающийся, сайт по SMS активациям почти любого сервиса!

Наш сервис полностью автоматизирован

Мы можем похвастаться не только высокой скоростью работы сайта, но и скоростью предоставления SMS сообщений.

 

21124068.gif

 

Канал в Telegram: @smsonlinepro

Поддержка в Telegram: @Pleorin

Почта: support@sms-online.pro

 

 

---

[Рекламный пост]


Сообщение отредактировал Pleorin: 25 05 2018 - 16:50

    • 9
  • Наверх

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

Основная причина в этом или нет ?

 
$result = str_replace('&amp;', '&', $result);
        $result = str_replace('<![CDATA[', '', $result);
        $result = str_replace(']]>', '', $result);
 
Каких-то не хватает полноценных символов для правильного парсинга ?

Сообщение отредактировал Vl-ad-im-ir: 08 07 2018 - 13:11

9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

Может есть какая-та библиотека для запрета использования данного тега <attention>?


Сообщение отредактировал Vl-ad-im-ir: 05 07 2018 - 20:04

9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

OFFLINE Отправлено

instaprof
группа пользователя
  • Онлайн:1д 7ч 25м
2

Может есть какая-та библиотека для запрета использования данного тега <attention>?

Вы хотите чтобы данный тег у вас не выводился?


    • 0
  • Наверх

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

Вы хотите чтобы данный тег у вас не выводился?

Именно так
При парсинге в xml
Я могу в ЛС вам скинуть функцию парсинга 


Сообщение отредактировал Vl-ad-im-ir: 05 07 2018 - 20:47

9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

OFFLINE Отправлено

instaprof
группа пользователя
  • Онлайн:1д 7ч 25м
2

Именно так
При парсинге в xml
Я могу в ЛС вам скинуть функцию парсинга 

скидывайте + пример xml который вы пытаетесь разобрать.

и какие данные с него нужно вытащить.


    • 1
  • Наверх

OFFLINE Отправлено

Warior2018
группа пользователя
  • Онлайн:17ч 33м
-1
Ну примерно знаю в чем проблема
    • 0
  • Наверх

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

Ну примерно знаю в чем проблема

И в чем же ?)


9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

OFFLINE Отправлено

Warior2018
группа пользователя
  • Онлайн:17ч 33м
-1

И в чем же ?)


Пока не дома как доеду отпищусь
    • 0
  • Наверх

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

Пока не дома как доеду отпищусь

Проблему я то решил, мне интересно ваши идеи
Может быть есть лучше вариант ? )


9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

OFFLINE Отправлено

Влад Панченко 0
группа пользователя
  • Онлайн:5д 4ч 30м
42

Можно каждый результат через регулярку проводить, или парсинг скоростной?


    • 0
  • Наверх

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

Можно каждый результат через регулярку проводить?

Это вы по-поводу strip_tags ?


9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

ONLINE Отправлено

runner
группа пользователя
  • Онлайн:9д 19ч 42м
2

Как вариант можете попробовать парсить xml с помощью этой либы, входящей в любую современную сборку php http://ru2.php.net/m...k.simplexml.php

Сильно проще, чем выдумывать регулярки и ковырять xml строковыми функциями.

$xml = file_get_contents('php://input');
$xmlObject = simplexml_load_string($xml);

// Далее в цикле проходим по списку xml-объектов и делаем, что нужно
// ...

    • 0
  • Наверх

ONLINE Отправлено

Vl-ad-im-ir
группа пользователя
  • Онлайн:278д 17ч 45м
2 306

 

Как вариант можете попробовать парсить xml с помощью этой либы, входящей в любую современную сборку php Ссылка

Сильно проще, чем выдумывать регулярки и ковырять xml строковыми функциями.

$xml = file_get_contents('php://input');
$xmlObject = simplexml_load_string($xml);

// Далее в цикле проходим по списку xml-объектов и делаем, что нужно
// ...

Это для непосредственного парсинга, но если парсер не воспринимает на сайте некоторые теги ?
Я слышал, что для этого есть функция strip_tags, но она не удаляет данные вышеописанные мною теги 
 


9ad979a3e9c4a86cec2f942d04762d7e.gif

    • 0
  • Наверх

ONLINE Отправлено

runner
группа пользователя
  • Онлайн:9д 19ч 42м
2

Это для непосредственного парсинга, но если парсер не воспринимает на сайте некоторые теги ?
Я слышал, что для этого есть функция strip_tags, но она не удаляет данные вышеописанные мною теги 
 

 

Библиотека simlexml просто xml-дерево разбирает, ей, вообще говоря, все равно какие теги, лишь бы синтаксис был корректен.


    • 0
  • Наверх