simplexml_load_string 抛出“未注册的错误消息”
Posted
技术标签:
【中文标题】simplexml_load_string 抛出“未注册的错误消息”【英文标题】:simplexml_load_string throws "Unregistered error message" 【发布时间】:2019-02-25 22:10:58 【问题描述】:我不知道这是什么意思,也不知道为什么它继续给我这个错误。
我真的必须为此使用 try 和 catch 吗?
这是我的错误信息:
simplexml_load_string():实体:第 1 行:解析器错误:未注册 错误信息 "exception":"[object] (ErrorException(code: 0): simplexml_load_string():实体:第 1 行:解析器错误:未注册 错误信息在 /home/kjdion45/public_html/app/Http/Controllers/LeadController.php:128)
【问题讨论】:
您能向我们展示一下您尝试加载的 XML 吗? 您看到的消息来自某个错误处理程序(可能是您正在使用的框架/库的一部分),它正在捕获 XML 错误并将它们转换为异常;不幸的是,它不知道如何处理这个消息,所以给你一个相当乱码的默认值。 【参考方案1】:此错误消息是from libxml,XML 可能有问题。
使用 SimpleXML 时,您可以通过调用 libxml_use_internal_errors()
函数来抑制错误消息。这会在内部存储错误,因此可以使用 libxml_get_errors()
将它们作为数组检索。
<?php
libxml_use_internal_errors(true);
$xml = simplexml_load_string($string);
$errors = libxml_get_errors();
if (count($errors))
echo "There were errors!\n";
foreach ($errors as $error)
echo "Error $error->code on line $error->line\n";
【讨论】:
以上是关于simplexml_load_string 抛出“未注册的错误消息”的主要内容,如果未能解决你的问题,请参考以下文章
simplexml_load_string()不会读取标签中带有“soap:”的soap响应[重复]
PHP:SimpleXMLElement() 类和 SimpleXML_load_string() 有啥区别?
simplexml_load_string 转换xml为数组
使用属性包含斜杠的 simplexml_load_string 将 XML 转换为数组