现在假设我有一个这样的 XML 文档:
<errors>
<viewErrors>
<viewError code="404">Can't finde requested file</viewError>
<viewError code="405">Method not allowed</viewError>
</viewErrors>
</errors>
我读了这个:
$_xml = new DOMDocument('1.0', 'utf-8');
$_xml -> load("doc.xml");
$_xpath = new DOMXPath($_xml);
echo $_xpath -> evaluate( '//viewError[@code="404"]' ) -> item(0) -> textContent;
这将打印我“找不到请求的文件”并且短期内这是一个很好的解决方案,但它不是很干净也不容易复制。首先,如果我的 XML 更改为:
<viewError code="404" type="test">Can't find requested file</viewError>
我必须将评估模式修改为
evaluate ( '//viewError[@code="404" and @type="test"]' )
但是由于我对整个评估的工作原理缺乏了解,我不知道如何阅读标签内容,因为使用 item(0) -> textContent 只会给出“尝试获取非对象的属性”错误。所以有两个问题:
- 有没有更简洁的方式在 PHP 中读取 XML
- 如果没有更简洁的方法,我如何从上面的脚本中读取评估标签的内容。