【发布时间】:2014-03-01 18:23:30
【问题描述】:
<?xml version="1.0" encoding="UTF-8"?>
<AddProduct>
<auth><id>vendor123</id><auth_code>abc123</auth_code></auth>
</AddProduct>
我做错了什么:致命错误:调用未定义的方法 DOMNodeList::getElementsByTagName()
$xml = $_GET['xmlRequest'];
$dom = new DOMDocument();
@$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$auth = $xpath->query('*/auth');
$id = $auth->getElementsByTagName('id')->item(0)->nodeValue;
$code = $auth->getElementsByTagName('auth_code')->item(0)->nodeValue;
【问题讨论】:
-
如果我可以提出建议,请不要在调试时使用
@来抑制错误警告。 -
尝试将您的 XPath 更改为
//auth或/AddProduct/auth -
实际上,经过进一步审查,
DOMXpath没有getElementsByTagName属性,但DOMDocument确实有。 -
@Ohgodwhy 感谢您的推荐!它让我遇到了真正的问题,那就是 XML 充满了从 emacs 复制和粘贴的反斜杠。哇!