2011-12-16 12 views
0

「Column Name = Error」が存在するかどうかを知るために、誰もが最速、最小リソース集中型の方法についてアドバイスできますか?php DomDocument + xml要素に直接アクセス

私はドキュメントを解析するのではなく、要素が存在するかどうかを確認するだけです。事前に

おかげで、

<?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

可能にするために!==falseを追加しました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" 
} 
+0

それに乾杯! – rix

0

は、あなたは、単にstrposを使用して考えがありますか?

$xml= //xml data 

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

編集:それは誤りを受けるのですが、他の人が述べたように、集中的な最小のリソースは、簡単なstrpos()コールだろう(とにかくここで起こるはずの)0のインデックス状況

関連する問題