2013-03-18 7 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

ответ

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); 
Смежные вопросы