php代码中的错误";类DOMDocument的对象无法转换为字符串;
下面的代码显示“类DOMDocument的对象无法转换为字符串”。我怎样才能解决这个问题php代码中的错误";类DOMDocument的对象无法转换为字符串;,php,xml,Php,Xml,下面的代码显示“类DOMDocument的对象无法转换为字符串”。我怎样才能解决这个问题 $rs=$_SESSION['hotelavail_rs']; // I have stored xml response in a session. // xml response should be string type. $str=(string)$rs; $DOC = new DOMDocument(); $xml =new SimpleXMLElement($str); $DOC->lo
$rs=$_SESSION['hotelavail_rs'];
// I have stored xml response in a session.
// xml response should be string type.
$str=(string)$rs;
$DOC = new DOMDocument();
$xml =new SimpleXMLElement($str);
$DOC->loadXML($str);
$Data = Parse($DOC->firstChild);
根据,调用saveXML()
将XML转储为字符串
我假设错误发生在这条线上
$str=(string)$rs;
在这种情况下,您应该将其更改为
$str = $rs->saveXML();
但既然您似乎正在将所有内容重新加载到DOMDocument中,为什么不这样做呢
$rs = $_SESSION['hotelavail_rs'];
$Data = Parse($rs->firstChild);
如果该错误稍后发生(例如在Parse
函数中),则需要不同的解决方案。知道抛出错误的确切线路会很有帮助
注意:以上所有内容都没有经过测试,我只是按照文档中的说明进行操作。我发现了两个潜在问题。我之所以说势能,是因为我不知道错误是由哪条线引起的
- 您确定XML在会话中保存为字符串吗?您可能想尝试
并确保它是字符串而不是DOMDocument对象。如果它不是一个字符串,则会导致var\u dump($\u会话['hotelavail\u rs'])
$str=(string)$rs出现问题代码>行
- 另一个潜在问题是
函数。它需要一个Parse()
还是一个字符串?如果它需要一个字符串,那么它将无法作为DOMNode
返回一个DOMDocument::firstNode
对象。不幸的是,DOMNode
无法将特定节点和子节点作为字符串返回DOMDocument
DOMDocument
对象?你能告诉我你用来在数组中保存XML的代码行吗?你说的数组是指$\u会话
数组吗?$res包含这个curl响应@Hearaman-另一个问题是我们不知道是哪一行引起了问题。它可能不是商店的样子。它可能是我上面提到的Parse
函数。如果该函数需要一个字符串,它将无法工作,因为$DOC->firstNode
返回一个DOMNode,而不是字符串$xmlf=$xa->xml2array($res)$xmla=($xmlf[“soapenv:Envelope”][“soapenv:Body”][“ns1:OTA_HotelAvailRQResponse”][“OTA_HotelAvailRQReturn”])$_会话['hotelavail_rs']=$xmla;。现在$xmla是一个数组,我恐怕你不明白你在做什么。为什么在这里并行使用两种不同的php扩展(SOMSocument和SimpleXML)?顺便说一句,$DOC->firstChild已经