За последние 24 часа нас посетили 40825 программистов и 1725 роботов. Сейчас ищут 594 программиста ...

Проблема с xml_set_character_data_handler

Тема в разделе "Прочее", создана пользователем Irvin, 19 фев 2008.

  1. Irvin

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

    С нами с:
    19 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Есть xml файл. Его фрагмент:
    Код (Text):
    1.  
    2. <DocTextLink>http://domen/index.php?r=dsfg&amp;id=223128372&amp;Tn=1&amp;That=std&amp;Rt=4&amp;Site=1&amp;DocNum=1&amp;DocID=13326751&amp;HID=1</DocTextLink>
    3. <DocTextLink>http://domen/index.php?r=dsfg&amp;id=223128372&amp;Tn=1&amp;That=std&amp;Rt=4&amp;Site=1&amp;DocNum=1&amp;DocID=13326751&amp;HID=1</DocTextLink>
    при обработке функцией

    Код (Text):
    1.  
    2. xml_set_character_data_handler($xml_parser, "tag_data");
    3. function tag_data($res, $data)
    4. {
    5.             $char_data = trim($data);
    6.             echo $char_data."<br/>";
    7. }
    выводит следующий результат:

    http://domen/index.php?r=dsfg
    &
    id=223128372
    &
    Tn=1
    &

    и т.д. Вопрос: почему он переносит амперсант на новую строчку? И как сделать так чтобы он возвращал целую строку с амперсантами и со всеми параметрами?
    Плиз хелп очень надо.
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. global $char_data;
    2. $char_data .= $data;
     
  3. Irvin

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

    С нами с:
    19 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    в таком случае он выдает результат в виде одной строки, а хотелось бы, сформировать массив с этими строками. это возможно...?
     
  4. 0xFa

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

    С нами с:
    19 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Мда, Саша. У меня порой складывается впечатление что профессия программиста тебе не по зубам. Читать php.net ты не умеешь, логику простейшую сформировать не можешь. Пишеь что-то, при этом даже не хочешь понять что ты пишешь и зачем. Такими темпами наша команда далеко не уйдет. Хорошо, хоть додумался линки прямые не дать на проект.
     
  5. 440Hz

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

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

    палишься аднако...
     
  6. Anonymous

    Anonymous Guest

    в йумар!
     
  7. Hight

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

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Саша был уволен со страшной силой =)
     
  8. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Гы. У меня одно такое чудо было. Умудрилось спалить сетку саттелитов, про которую яндекс год знал и не трогал. А теперь сетка сдохла. Тоже по верхам нахватался, правда, побольше, и мнило себя "настоящим програмистом", который даже delphi несколько раз видел и даже запускал. Думать это чудо так и не научилось. Хотя твёрдо уверен в обратном.
     
  9. 0xFa

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

    С нами с:
    19 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Да, смешно. Только мне его код потом переписывать, особенно бред типа:


    PHP:
    1.  
    2. $line = str_replace('&', '&amp;', $line);
    3. $line = str_replace('&amp;lt;b&amp;gt;', '&lt;b&gt;', $line);
    4. $line = str_replace('&amp;lt;/b&amp;gt;', '&lt;/b&gt;', $line);
    5. $line = str_replace('&amp;lt;br&amp;gt;', '&lt;br&gt;', $line);
    6.  
    Или, что больше всего меня бесит, такие куски:

    PHP:
    1.  
    2. foo("$var");
    3.  
    Кавычечки, чтобы перменная не замерзла, йопт.


    З.Ы.: Впредь на собеседовании буду жестче. :evil:

    Индусы могут найти смысл даже в безсмысленном куске кода, если сделают хорошую затяжку... (с)
     
  10. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    правильно. я всегда говорил, что после получаса качественного прессинга в полупстой подвальной комнате с кровью на стенах, почти все будут работать бесплатно по 23 часа в сутки.


    p.s. прикинь. сажаете чела в комнату, а там кровью на стене, PHP... гыгыгы
     
  11. Anonymous

    Anonymous Guest

    блин, занес в меморизы, теперь я знаю как это называецца....