Как проверить XML в PHP
Сниппет
Функция libxml_get_errors возвращает массив с объектами LibXMLError, если есть ошибки в буфере, или пустой массив в противном случае.
1) Через DOMDocument
<?php
/**
* @param string $xmlContent A well-formed XML string
* @param string $version 1.0
* @param string $encoding utf-8
* @return bool
*/
function isXMLContentValid($xmlContent, $version = '1.0', $encoding = 'utf-8'){
if (trim($xmlContent) == '') {
return false;
}
libxml_use_internal_errors(true);
$doc = new DOMDocument($version, $encoding);
$doc->loadXML($xmlContent);
$errors = libxml_get_errors();
libxml_clear_errors();
return empty($errors);
}
$xml = '<website><domain>wtools.io</domain><title>Online Web Tools</title></website>';
if(isXMLContentValid($xml)){
echo "Действительный XML";
} else {
echo "Недействительный XML";
}
2) Через simplexml_load_string
<?php
/**
* @param string $xmlContent A well-formed XML string
* @return bool
*/
function isXMLContentValid($xmlContent){
if (trim($xmlContent) == '') {
return false;
}
libxml_use_internal_errors(true);
$xml = simplexml_load_string($xmlContent);
if ($xml === false) {
return false;
} else {
return true;
}
}
$xml = '<website><domain>wtools.io</domain><title>Online Web Tools</title></website>';
if(isXMLContentValid($xml)){
echo "Действительный XML";
} else {
echo "Недействительный XML";
}
Если вы хотите проверить XML онлайн, вы можете использовать наш бесплатный инструмент.