最近在开发码农资源网在线工具箱,在开发 XML 转 JSON 工具时,有个需求是要判断用户输入的是否是有效的 xml 内容。

最终实现的函数如下:

function isValidXml($content)
{
    $content = trim($content);
    if (empty($content)) {
        return false;
    }

    if (stripos($content, '<!DOCTYPE html>') !== false) {
        return false;
    }

    libxml_use_internal_errors(true);
    simplexml_load_string($content);
    $errors = libxml_get_errors();          
    libxml_clear_errors();  

    return empty($errors);
}