Як перевірити XML у PHP

Сніппет

Функція libxml_get_errors повертає масив із об'єктами LibXMLError, якщо є помилки в буфері, або порожній масив в іншому випадку.

1) Через DOMDocument

downloadcopy
<?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

downloadcopy
<?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 онлайн, ви можете використати наш безкоштовний інструмент.