PHP Учебник

PHP Старт Введение в PHP Установка PHP Синтаксис PHP Комментарии в PHP Переменные PHP PHP Echo / Print Типы данных PHP Строки PHP Числа PHP Математика в PHP Константы PHP Операторы PHP PHP If...Else...Elseif PHP Switch Циклы в PHP Функции PHP Массивы PHP PHP Суперглобальные PHP RegEx

PHP Формы

Обработка форм PHP Валидация форм PHP Обязательные поля Валидация URL/E-mail Полная форма PHP

PHP Продвинутый

PHP Дата и время PHP Include/Require PHP Работа с файлами Открытие/Чтение файлов Создание/Запись файлов PHP Загрузка файлов Файлы cookie PHP Сессии PHP Фильтры PHP Расширенные фильтры PHP Функция Callback PHP JSON PHP Исключения

PHP OOP

Что такое ООП в PHP Классы/Объекты PHP Цепочки методов PHP Конструктор PHP Деструктор PHP Модификаторы доступа Наследование в PHP Константы класса PHP Подсказка типов PHP Подсказка интерфейсов Абстрактные классы PHP PHP Интерфейсы PHP Полиформизм PHP Трейты Статические методы PHP Статические свойства PHP Пространства имен PHP Итерируемые объекты

База данных MySQL

База данных MySQL Подключение к MySQL Создание БД MySQL Создание таблицы MySQL Вставка данных MySQL Получить ID MySQL Подготовленные операторы PHP MySQL Получение данных MySQL Предложение WHERE Предложение ORDER BY Обновление данных MySQL Удаление данных БД MySQL Limit Data

PHP XML

Парсеры PHP XML Парсер PHP SimpleXML Получить PHP SimpleXML PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Введение AJAX PHP AJAX База Данных AJAX XML AJAX Живой поиск AJAX Опрос

PHP Примеры

PHP Примеры Практика ООП PHP PHP квиз-тест Упражнения Базовый PHP Упражнения Алгоритмы Упражнения Массивы Упражнения Цикл for Упражнения Функции Регулярные выражения Упражнения Дата PHP Упражнения Строки PHP Математика PHP Упражнения Формы PHP Упражнения Классы PHP Упражнения JSON PHP PHP Задачник


Синтаксический парсер PHP SimpleXML




Расширение SimpleXML PHP предоставляет полный набор инструментов, который вы можете использовать для чтения, записи и анализа XML-документов в ваших PHP-приложениях.


SimpleXML разработан для управления и извлечения данных из файлов XML. После применения SimpleXML организует содержимое XML-документа, чтобы вы могли получать информацию о различных элементах и ​​их атрибутах. Вы даже можете добавить к элементу новые дочерние элементы и посчитать их.

Как следует из названия, PHP SimpleXML лучше всего подходит для небольших XML-файлов с простой структурой. Использование огромных документов может ухудшить его производительность. Однако, если файл, который вы хотите проанализировать, небольшой, SimpleXML поможет вам сделать это с меньшим количеством строк кода, чем другие парсеры.

SimpleXML: основные советы

  • Расширение PHP SimpleXML позволяет получать доступ к данным XML и работать с ними.
  • Этот парсер основан на дереве и предоставляет эффективный метод получения имени определенного элемента, атрибутов или текстового содержимого. Однако вы должны знать макет или структуру XML-документа, с которым вы работаете.
  • Используя Simple XML, вы можете преобразовывать документы, написанные на PHP XML, в массивы или объекты.
  • Он требует меньше строк кода, чем его альтернативы Expat и DOM.
  • Он доступен на любом сервере, на котором установлен PHP.

Когда наша работа требует, чтобы PHP читал данные XML-документа из строки, мы используем функцию с именем simplexml_load_string().

Представьте, что у нас есть переменная $my_data, содержащая данные XML. В следующем примере кода показано, как это будет выглядеть при первом объявлении:

$my_data = 
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>You</to>
<from>Me</from>
<heading>The Game</heading>
<body>You lost it.</body>
</note>";

В приведенном ниже примере, функция PHP simplexml_load_string() используется для чтения XML-данных прямо из ранее упомянутой переменной:

<?php
  $xml_data = "<?xml version='1.0' encoding='UTF-8'?>  
    <note>  
    <to>You</to>  
    <from>Me</from>  
    <heading>The Game</heading>  
    <body>You lost it.</body>  
    </note>";  
  $xml = simplexml_load_string($xml_data) or die('Не удалось создать объект');
  print_r($xml);  
?>

Результат выполнения кода:

SimpleXMLElement Object ( [to] => You [from] => Me [heading] => The Game [body] => You lost it. )

Чтобы поймать все ошибки и затем просмотреть их во время загрузки XML-файла PHP, вы можете использовать функции libxml.

В следующем примере предпринимается попытка загрузить неработающую строку XML:

<?php
  libxml_use_internal_errors(true);
  $my_data =
    "<?xml version='1.0' encoding='UTF-8'?> 
    <document> 
    <to>You</wrong>
    <from>Me</wrong>
    <heading>The Game</wrong>
    <body>You lost it</wrong>
    </document>"; 

  $xml = simplexml_load_string($my_data);
  if ($xml === false) {
    echo "Failed to load XML: ";
    foreach(libxml_get_errors() as $error) {
      echo "<br>", $error->message;
    }
  } else {
    print_r($xml);
  }
?>

Результат выполнения кода:

Failed to load XML:
Opening and ending tag mismatch: to line 3 and wrong
Opening and ending tag mismatch: from line 4 and wrong
Opening and ending tag mismatch: heading line 5 and wrong
Opening and ending tag mismatch: body line 6 and wrong

Для чтения данных XML из файла используется функция PHP simplexml_load_file().

Для чтения мы используем XML-документ с именем file.xml. В приведенном ниже примере вы можете просмотреть его содержимое:

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>You</to>
  <from>Me</from>
  <heading>The Game</heading>
  <body>You lost it.</body>
</note>

Теперь давайте посмотрим, как можно использовать функцию simplexml_load_file() для чтения XML-данных из файла:

<?php  
  $xml = simplexml_load_file("file.xml") or die("Не удалось создать объект");  	
  print_r($xml);  
?>

Результат выполнения кода:

SimpleXMLElement Object ( [to] => You [from] => Me [heading] => The Game [body] => You lost it. )

  • SimpleXML - очень удобный выбор, поскольку он встроен в PHP начиная с версии 5 и доступен на всех серверах, поддерживающих PHP.
  • Это парсер на основе дерева. Следовательно, вам необходимо понимать структуру документа, который вы собираетесь анализировать. Элемент в XML-документе классифицируется как SimpleXMLElement.
  • SimpleXML позволяет обрабатывать XML-файлы как полезные структуры данных: вы можете легко извлекать определенное содержимое, атрибуты или имена элементов. По сути, он превращает PHP XML в массив.
  • По сравнению с парсерами Expat или DOM, ему требуется меньше строк кода для правильного анализа XML-данных PHP.