Перейти к содержимому

Справочное руководство по библиотеке PHP libxml

Данное руководство охватывает библиотеку PHP libxml и предоставляет всё необходимое для эффективного разбора, проверки и манипулирования XML-документами.

Что такое PHP libxml?

PHP libxml — это библиотека, предоставляющая набор функций для работы с XML-документами. Она включена в состав языка программирования PHP и позволяет разработчикам с лёгкостью разбирать, проверять и изменять XML-документы.

Установка PHP libxml

PHP libxml включена в PHP по умолчанию, поэтому её не нужно устанавливать отдельно. Если вы используете кастомную сборку PHP, убедитесь, что расширение libxml включено в вашей конфигурации php.ini.

Использование PHP libxml

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

Разбор XML-документов

Одним из самых распространённых способов использования PHP libxml является разбор XML-документов. В следующем примере показано, как использовать функцию simplexml_load_file для разбора XML-документа:

Разбор XML-документов в PHP

php
<?php
libxml_use_internal_errors(true);
$xml = simplexml_load_file('example.xml');

if ($xml === false) {
  echo "Failed to load XML.";
  foreach (libxml_get_errors() as $error) {
    echo $error->message;
  }
  libxml_clear_errors();
} else {
  echo "XML loaded successfully.";
}
?>

Проверка XML-документов

PHP libxml также предоставляет функции для проверки XML-документов на соответствие DTD или схеме. В следующем примере показано, как проверить XML-документ с помощью XMLReader, что является рекомендуемым подходом для современных версий PHP:

Пример PHP libxml

php
<?php
libxml_use_internal_errors(true);
$reader = new XMLReader();
$reader->open('example.xml');
$reader->setSchema('example.xsd');

if ($reader->isValid()) {
  echo "The XML document is valid.";
} else {
  echo "The XML document is not valid.";
  foreach (libxml_get_errors() as $error) {
    echo $error->message;
  }
  libxml_clear_errors();
}
$reader->close();
?>

Манипулирование XML-документами

PHP libxml также предоставляет функции для манипулирования XML-документами. В следующем примере показано, как использовать DOMDocument::createElement и DOMDocument::appendChild для создания нового элемента, добавления его в корень документа и сохранения изменений. Пример также включает обработку ошибок при загрузке файла и демонстрирует, как вывести результат в виде строки:

Манипулирование XML-документами в PHP

php
<?php
$doc = new DOMDocument();
if (!$doc->load('example.xml')) {
  echo "Failed to load XML document.";
  exit;
}

// Create a new element and append it to the document root
// To append to a specific node, use: $target = $doc->getElementsByTagName('root')->item(0); $target->appendChild($new_element);
$new_element = $doc->createElement('new_element', 'This is a new element.');
$doc->appendChild($new_element);

// Save the modified XML document to a file
$doc->save('example.xml');

// Alternatively, output the modified XML as a string
// echo $doc->saveXML();
?>

Заключение

Мы надеемся, что данное руководство помогло вам получить всестороннее представление о библиотеке PHP libxml. Независимо от того, разбираете ли вы, проверяете или изменяете XML-документы, PHP libxml предоставляет все необходимые инструменты для выполнения задачи. Так почему бы не попробовать её уже сегодня?

Практика

Для чего предназначено расширение PHP libxml?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.