Как проверить xml строку на валидность в php?

Пользователь

от jerrold_langworth , в категории: PHP , 3 года назад

Как проверить xml строку на валидность в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от greyson , 3 года назад

@jerrold_langworth Вы можете использовать simplexml_load_string() функцию в PHP, чтобы проверить xml строку на валидность в PHP, посмотрите пример ниже:


1
2
3
4
5
6
7
<?php

$xmlString = file_get_contents("test.xml");
$document = @simplexml_load_string($xmlString);
if (!$document) {
    throw new Exception("XML файл не валидный.");
}


Пользователь

от stephania , 2 года назад

@jerrold_langworth 

В PHP есть функция simplexml_load_string, которая преобразует XML-строку в объект SimpleXMLElement. Если XML-строка не является валидной, функция вернет false. Пример кода:

1
2
3
4
5
6
7
$xml = '<root><element>test</element></root>';
$xml_obj = simplexml_load_string($xml);
if ($xml_obj === false) {
    // XML-строка не валидна
} else {
    // XML-строка валидна
}


Обратите внимание, что эта функция проверяет только синтаксис XML-строки. Чтобы проверить, что XML-строка соответствует определенному схему, вам может понадобиться использовать функцию DOMDocument::schemaValidate, которая проверяет XML-документ на соответствие определенной схеме.

1
2
3
4
5
6
7
8
$xml = '<root><element>test</element></root>';
$xml_obj = new DOMDocument();
$xml_obj->loadXML($xml);
if (!$xml_obj->schemaValidate('schema.xsd')) {
    // XML-строка не соответствует схеме
} else {
    // XML-строка соответствует схеме
}