За последние 24 часа нас посетили 15848 программистов и 1666 роботов. Сейчас ищут 879 программистов ...

Проверка наличия узла(тэга) в XML файле

Тема в разделе "PHP для новичков", создана пользователем deadlolman, 7 июл 2016.

  1. deadlolman

    deadlolman Новичок

    С нами с:
    14 июн 2016
    Сообщения:
    23
    Симпатии:
    1
    Доброго времени суток. Возник вопрос после парсинга. Мне приходит XML файл с информацией которую надо занести в бд. Как мне проверить содержаться ли в этом файле узлы которые мне нужны. Например
    <sender>Произвольный текст</sender>.
    Как проверить существует ли в файле XML <sender>.
    Пробывал выгружать в переменную, но она хранит все кроме тэгов.
    Помогите пожалуйста.
    Спасибо
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    XPath + SimpleXML или DOMDocument, банальный поиск по строке в конце концов
     
    deadlolman нравится это.
  3. deadlolman

    deadlolman Новичок

    С нами с:
    14 июн 2016
    Сообщения:
    23
    Симпатии:
    1
    Банальный поиск по строке не выходит. Можно пример пожалуйста
    --- Добавлено ---
    Разобрался с XPath спасибо
    --- Добавлено ---
    Напишите пожалуйста пример как с поиском по строк. Только ее надо читать с XML файла .xml
    --- Добавлено ---
    Что бы было понятней. Если существует данный тег то пропускаем файл на парсинг.
     
  4. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну так, если размер файла XML не сильно велик, читаем его в строку (file_get_contents), а потом банальным mb_strpos. Что странного-то? Первый вариант надёжнее, но медленнее. И больше памяти - и SimpleXML и DOMDocument строят в памяти Dom-структуру документа. Но поскольку дальнейший парсинг скорее всего тоже будет с помощью этих расширений, то приемлемое решение.
     
    askanim и deadlolman нравится это.