我正在使用此代码来解析来自 API 的 XML 响应。获取错误尝试获取非对象的属性$doc = new \DOMDocument();$doc->loadXML($response);$doc->preserveWhiteSpace = false;$doc->formatOutput = true;$xml_string = $doc->saveXML();$doc->loadXML($xml_string);如果它给出正确的结果,它工作正常,但如果它给出错误,它会给出对未定义对象的错误调用。我正在访问这样的值if($doc->getElementsByTagName('accepted')->item(0)->nodeValue == true){ $json = array( 'success' => 1, 'ACN' => $doc->getElementsByTagName('acn')->item(0)->nodeValue, 'URL' => htmlspecialchars($doc->getElementsByTagName('certificateUrl')->item(0)->nodeValue) );}else{ $json = array( 'success' => 0, 'error' =>"", );}因此,如果接受的值为 true,则它可以正常工作并给出所需的结果。但如果接受不存在,则会引发错误。如何检查节点是否存在于 XML 中?任何帮助表示赞赏。
1 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
DOM::getElementsByTagName返回一个DOMNodeList实例。该对象有一个长度属性,您可以在继续访问其中的项目之前对其进行检查。
$acceptedItems = $doc->getElementsByTagName('accepted');
if ($acceptedItems->length > 0 && $acceptedItems->item(0)->nodeValue === 'true') {
$json = array(
'success' => 1,
'ACN' => $doc->getElementsByTagName('acn')->item(0)->nodeValue,
'URL' => htmlspecialchars($doc->getElementsByTagName('certificateUrl')->item(0)->nodeValue)
);
} else {
$json = array(
'success' => 0,
'error' => "",
);
}
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消