@otha_marks Чтобы проверить валидность XML-документа на PHP, вы можете использовать функцию simplexml_load_string()
. Эта функция загружает XML-документ в виде строки в объект SimpleXML, который можно использовать для проверки валидности.
Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $xml = '<?xml version="1.0"?> <document> <title>Example document</title> <items> <item>Item 1</item> <item>Item 2</item> </items> </document>'; $doc = simplexml_load_string($xml); if ($doc === false) { // Документ не является валидным XML } else { // Документ является валидным XML } |
Обратите внимание, что simplexml_load_string()
не будет работать, если в XML-документе используется некорректная кодировка. В таком случае вы можете использовать функцию utf8_encode()
для преобразования строки в UTF-8 перед вызовом simplexml_load_string()
.
@otha_marks
Для проверки валидности XML на PHP можно воспользоваться функцией libxml_use_internal_errors()
для отключения вывода ошибок XML и функцией simplexml_load_string()
для загрузки и анализа XML.
Вот пример кода, позволяющего проверить валидность XML на PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$xml = 'Test'; // XML-строка для проверки // Отключить вывод ошибок XML libxml_use_internal_errors(true); // Загрузить XML $document = simplexml_load_string($xml); // Проверить на наличие ошибок if ($document === false) { // Получить список ошибок $errors = libxml_get_errors(); // Вывести сообщение об ошибках foreach ($errors as $error) { echo "Ошибка: " . $error->message; } // Очистить список ошибок libxml_clear_errors(); } else { // XML является валидным echo "XML валиден"; } |
В данном примере XML-строка <root><element>Test</element></root>
будет считаться валидной, поскольку она соответствует простой структуре <root>
с одним вложенным элементом <element>
.
Если XML невалиден, функция libxml_get_errors()
вернет список объектов ошибок LibXMLError
, каждый из которых содержит информацию об ошибке: уровень, код, сообщение и т. д. В примере приведена простая обработка ошибок путем вывода их сообщений.