php DomDocument +直接访问xml元素

时间:2011-12-16 15:42:25

标签: php dom xml-parsing domdocument

任何人都可以建议使用最快,资源最少的方法来查看“列名称=错误”是否存在?

我不想解析文档,只是检查元素是否存在。

提前致谢,

<?xml version="1.0" encoding="UTF-8"?>
<Table>
<Columns Items="4">
<Column Name="Error" Type="String" />
<Column Name="Description" Type="String" />
<Column Name="Cause" Type="String" />
<Column Name="Resolution" Type="String" />
</Columns>
<Rows Items="1">
<Row Error="2" Description="Unknown key" Cause="Unknown key" Resolution="Please check     the key is correct, it should be the in form AA11-AA11-AA11-AA11." />
</Rows>
</Table>

2 个答案:

答案 0 :(得分:2)

正如其他人所提到的,资源密集程度最低的是简单的strpos()调用,但如果XML的确切格式发生变化,则会出现错误。一种完全的方法是使用DOM,然后你可以尝试一个xpath查询......

$xml = '...'
$dom = new DomDocument();
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);

// returns NULL if no columns found with name="error"
$err = $xpath->query('//Column[@Name="Error"]')->item(0);

if ($err) {
  // there is a column with attribute Name="Error"
}

答案 1 :(得分:0)

您是否想过简单地使用strpos

$xml= //xml data

if(strpos($xml,'<Column Name="Error"') !== false){
    // its been found
}

编辑:添加!==false以允许0索引情况(这不应该发生在这里)