PHP simplexml_load_file 案例 return 错误
PHP simplexml_load_file case return false
我用 phpunit(100% 覆盖率)为我的 PHP 应用程序进行了单元测试,我有这个:
$xml = simplexml_load_string($soapResponse);
if (false === $xml) {
throw new \Exception('invalid XML');
}
我没有找到 simplexml_load_string
return false
.
的测试用例
如果你有解决办法...谢谢
任何无效的XML将导致simplexml_load_string
到returnfalse
:
$soapResponse = 'invalid';
$xml = simplexml_load_string($soapResponse);
var_dump($xml);
// output: bool(false)
请注意,这也会生成警告。
正如 John C 指出的那样,无效的 xml 将导致 simplexml_load_string 变为 return 错误并生成警告。此外,您可能希望禁用这些警告并存储它们。为此,您可以使用 libxml_use_internal_errors 和 libxml_get_errors.
<?php
$soapResponse = 'invalid_xml';
libxml_use_internal_errors(true);
$xml = simplexml_load_string($soapResponse);
if (false === $xml) {
$errors = libxml_get_errors();
echo 'Errors are '.var_export($errors, true);
throw new \Exception('invalid XML');
}
所以输出是:
array (
0 =>
LibXMLError::__set_state(array(
'level' => 3,
'code' => 4,
'column' => 1,
'message' => 'Start tag expected, \'<\' not found
',
'file' => '',
'line' => 1,
)),
)
这可能会帮助您识别 XML 中有问题的部分。这在 XML 很大时非常有用。
我用 phpunit(100% 覆盖率)为我的 PHP 应用程序进行了单元测试,我有这个:
$xml = simplexml_load_string($soapResponse);
if (false === $xml) {
throw new \Exception('invalid XML');
}
我没有找到 simplexml_load_string
return false
.
如果你有解决办法...谢谢
任何无效的XML将导致simplexml_load_string
到returnfalse
:
$soapResponse = 'invalid';
$xml = simplexml_load_string($soapResponse);
var_dump($xml);
// output: bool(false)
请注意,这也会生成警告。
正如 John C 指出的那样,无效的 xml 将导致 simplexml_load_string 变为 return 错误并生成警告。此外,您可能希望禁用这些警告并存储它们。为此,您可以使用 libxml_use_internal_errors 和 libxml_get_errors.
<?php
$soapResponse = 'invalid_xml';
libxml_use_internal_errors(true);
$xml = simplexml_load_string($soapResponse);
if (false === $xml) {
$errors = libxml_get_errors();
echo 'Errors are '.var_export($errors, true);
throw new \Exception('invalid XML');
}
所以输出是:
array (
0 =>
LibXMLError::__set_state(array(
'level' => 3,
'code' => 4,
'column' => 1,
'message' => 'Start tag expected, \'<\' not found
',
'file' => '',
'line' => 1,
)),
)
这可能会帮助您识别 XML 中有问题的部分。这在 XML 很大时非常有用。