За последние 24 часа нас посетили 17677 программистов и 1639 роботов. Сейчас ищут 2309 программистов ...

Помогите с xml_parser

Тема в разделе "Прочие вопросы по PHP", создана пользователем pr0n1x, 19 май 2006.

  1. pr0n1x

    pr0n1x Активный пользователь

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    xml_parser работает хорошо в том случае если между тегами не еще дополнительных символом <> & и еще встречать большое тере., когда парсер встречает эти символы он или удаляет их или обрезает все что идет после них. Как сделать чтобы, то что находилось между главными тегами копировалось полностью??

    Вот небольшой пример:

    Код (Text):
    1.  
    2. 1)<rss version="2.0">
    3. 2)    <channel>
    4. 3)        <title>HSA Insider News</title>
    5. 4)        <link>http://www.hs&insider.com/</link> //все что идет после амперсанта удаляется
    6. 5)        <description>HSA Insider News</description>
    7. 6)        <language>en-us</language>
    8. 7)        <pubDate>Thu, <P>18</P> May 2006 16:38:49 GMT</pubDate>        
    9. 8)        <lastBuildDate>Thu, 18 May 2006 16:38:49 GMT</lastBuildDate>
    10. 9)    </channel>
    11. 10)</rss>
    В строке 7)
    в этой строке когда я вывожу с помощью пастера только теги, тег <P></P> не выводится, а когда вывожу данные что расположены между тегами <pubDate></pubDate> все обрезается после знака <
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    pr0n1x

    я юзаю вот такое:

    PHP:
    1. <?
    2. function GetXMLFirstVal($r,$t) {
    3.         if(preg_match_all('/<('.$t.')>(.*)<\/\\1>/Usi',$r,$o)) return $o[2][0];
    4.         return '';
    5. }
    6.  
    7. function GetXMLAllVal($r,$t) {
    8.         if(preg_match_all('/<('.$t.')>(.*)<\/\\1>/Usi',$r,$o)) return $o[2];
    9.         return array();
    10. }
    11. ?>
    обычно хватает с избытком