За последние 24 часа нас посетили 17611 программистов и 1313 роботов. Сейчас ищут 1146 программистов ...

Парсинг необычного xml

Тема в разделе "Регулярные выражения", создана пользователем kit, 30 апр 2015.

  1. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Друзья выручайте! Есть xml вида:
    Код (Text):
    1.  
    2. <suggest>
    3.  В
    4.  <fix>е</fix>
    5.  лик
    6.  <fix>и</fix>
    7.  й Новг
    8.  <fix>о</fix>
    9.  р
    10.  <fix>о</fix>
    11.  д
    12. </suggest>
    Задача получить словосочетание Великий Новгород, т.е. что бы $city="Великий Новгород";
    Пробовал и simplexml_load_string, и preg_match_all, и str_replace, но получается всякая фигня. Не знаю уже что придумать. Выручайте!
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.787
    Симпатии:
    1.328
    Адрес:
    Лень
    Регулярные выражения в помощь. Мозг должен уже на перед видеть действия твоих рук и кода. Нету? жаль.
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    $xml = preg_replace('/<[^>]+>/', '', $xml);
    или
    strip_tags()
     
  4. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    runcore спасибо, работает.
    я делал таким образом:
    Код (Text):
    1.  
    2. $city=preg_replace ('/<fix>/', NULL, $city);
    3. $city=preg_replace ('/<\fix>/', NULL, $city);
    Работает так же как и твой (более изящный) вариант, но в обоих случая проблема такая. Результат на странице пишет вроде верный, но при просмотре кода страницы оказывается что пишет не просто Великий Новгород, а:
    "
    Великий Новгород"
    т.е. кавычка, перевод строки, Великий Новгород, кавычка.
    MAN_IFE_ST изыди!
     
  5. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Проблема заключается в том, что это не XML, по этому регулярные выражения или для данного примера - strip_tags
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.787
    Симпатии:
    1.328
    Адрес:
    Лень
    ваш мозг способен лишь на это?
    ответ был дан уже...
    но обычно люди не хотят раскрыть свой потенциал и ищут легких путей, строят из себя блондинку.

    Добавлено спустя 43 секунды:
    Ибо кит альбинос
     
  7. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    MAN_IFE_ST иди занимайся своим мозгом! Вот почему всегда найдется некий умный, который кроме того как громко испортить воздух ничем не поможет? MAN_IFE_ST просто пройди мимо темы! Неужели непонятно что если в первом же посте упоминалось preg_match_all, то регулярки были уже опробованы? Мозг видимо был сильно занят предвидением действия твоих рук и кода? Непонятно? Жаль... Тошнит от таких
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.787
    Симпатии:
    1.328
    Адрес:
    Лень
    как будто больше функций нету в мире, за то отписаться по трещать всегда готов.
     
  9. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Код (PHP):
    1. $string ='<suggest>
    2.  В
    3.  <fix>е</fix>
    4.  лик
    5.  <fix>и</fix>
    6.  й Новг
    7.  <fix>о</fix>
    8.  р
    9.  <fix>о</fix>
    10.  д
    11. </suggest>';
    12. echo strip_tags($string); 
     
  10. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    rodent90 это круто! спасибо
     
  11. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    невнимательность. про strip_tags было написано еще в третьем сообщении
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    runcore, ты же ему код не дал:)
     
  13. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.099
    Симпатии:
    1.243
    Адрес:
    там-сям
    Надо завести беджик для таких авторов "Программирую через Ctrl+C, Ctrl+V". 2/3 новичков такие, но бывают и резиденты с 2006г )))
     
  14. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Народ! Вы бы по делу столько постили, а то иной раз не дождешься. Ну не заметил... ну отвлекся на парсинг.... А вам лишь бы постебаться, только повод дай!
    runcore извини что не оценил. Ребята всем спасибо! Тема исчерпана.