PHP 7.1 问题是我有一个格式正确的XML文件。我知道它的格式正确,因为我们正在为客户端生成XML文件,现在唯一的问题是我将其放入XML文件中,而不是从响应中读取它,并且无法将其读回。 要点:
测试返回此错误消息。如您所见,在<字符之前有一个反斜杠字符,我不知道为什么会出现它,因为它不在文件中,而且我100%肯定这是问题所在,因为我总是遇到错误,例如“试图获取属性”非物体”或类似的东西。
[37;41;1m [PHPUnit_Framework_Exception] simplexml_load_file(): I/O warning : f
ailed to load external entity "\<?xml version="1.0"?>
\<AudioDoc name="JustEat16727D1InHomeRUSHES1" path="JustEat16727D1InHomeRUSHES1.
mp3">
\<ProcList> [39;49;22m
[37;41;1m
编码我正在使用的内容。很难选择,因为几乎所有内容都可以在Internet上找到。实际上,我需要一个SimpleXMLElement对象。所以我像这样读取文件:
$xml = simplexml_load_string($xmlPath);
或
$xml = new SimpleXMLElement(file_get_contents($xmlPath));
或
$xml = simplexml_load_string(file_get_contents($xmlPath));
我尝试了所有方法,然后在代码接收中通过以下代码进行了检查:
$I->assertInstanceOf(SimpleXMLElement::class, $xml, 'Input type is xml');
而且我没有任何错误。 然后在要使用的函数处调用函数,函数标头如下所示:
public static function mergeXml(SimpleXMLElement $xml, $content)
因此,如果它不是SimpleXMLElement,那么它也会在此处引发错误。然后我想使用它,并且出现了上面的错误。
正如我说的那样,当我从响应中获取xml时,此功能可以正常工作,但是由于它是3rdparty API,而且非常慢-例如1.5个小时才能取回XML,因为这是对文本服务的讲话-我不会如果他们在API中没有bug,就根本不在这里-我必须自己从xml文件中进行一些修改。
XML大约为1805kb,但是我不认为这是个问题,因为代码可以用另一种方式读取
所以。这里是否有人可能会想到将XML作为字符串处理的原因是什么?还是\字符的原因是什么?
感谢您的帮助!