2013-03-18 61 views
0

嘗試計算XML文件中是否存在名稱以及有多少次可以幫助? 我已經在使用互聯網代碼的版本35上試過,但大多數情況下,它只計算標籤而不是標籤之間的內容。檢測XML中是否存在值

<?php 

$xml = <<< XML 
<Book> 
<Contact> 
     <Name>An Smith</Name> 
</Contact> 
    <Contact> 
     <Name>Alex Pepper</Name> 
</Contact> 
    <Contact> 
     <Name>Tom James</Name> 
</Contact> 
; 
</Book> 
XML; 

$dom = new DOMDocument; 
$dom->loadXml($xml); 

// to detect, count if variable NameToFind is present 
$NameToFind="Alex Pepper"; 

// Missing code 

echo "$NameToFind is x times present in the XML "; 

做了一些attemps與您的所有意見,最後,這是工作的代碼,我需要:

$xml=simplexml_load_file('book.xml'); 
$nodes= $xml->xpath("//Book/Contact[contains(.,'$NameToFind')]"); 
$count = count($nodes); 
+0

我認爲你需要使用XPath。我會做一些研究。 – karmafunk 2013-03-18 11:35:48

回答

0

大概是這樣的:

$xpath = new DOMXPath($dom); 
$query = '//Book/Contact/Name[. = "' . $NameToFind . '"]'; 
$entries = $xpath->query($query); 
$count = count($entries); 

雖然我的XPath查詢可能是一個一點關。

0
$xml=simplexml_load_file('book.xml'); 
$nodes= $xml->xpath("//Book/Contact[contains(.,'$NameToFind')]"); 
$count = count($nodes);