通过使用tag属性进行搜索来读取XML标记值

时间:2013-09-20 23:16:30

标签: php xml

现在让我们说我有一个这样的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"]' )

但由于我对整个评估的工作方式缺乏了解,我不知道如何阅读标签内容,因为使用了项目(0) - &gt; textContent只是给出了“试图获取非对象的属性”错误。所以有两个问题:

  1. 是否有更简洁的PHP阅读XML方式
  2. 如果没有更简洁的方法,我如何从上面的脚本中读取评估标签的内容。

0 个答案:

没有答案