尝试计算XML文件中是否存在名称以及有多少次,有人可以帮忙吗? 我已经在使用互联网代码的第35版我已经尝试过但主要是它只计算标签而不是标签之间的内容。
<?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 ";
完成所有评论的一些尝试,最后这是我需要的工作代码:
$xml=simplexml_load_file('book.xml');
$nodes= $xml->xpath("//Book/Contact[contains(.,'$NameToFind')]");
$count = count($nodes);
答案 0 :(得分:0)
可能是这样的:
$xpath = new DOMXPath($dom);
$query = '//Book/Contact/Name[. = "' . $NameToFind . '"]';
$entries = $xpath->query($query);
$count = count($entries);
虽然我的xpath查询可能有些偏差。
答案 1 :(得分:0)
我认为这就是你所追求的目标。
https://stackoverflow.com/a/10162624/736639
另一种选择是使用xml2array库将XML转换为数组:http://www.bin-co.com/php/scripts/xml2array/。
$array = xml2array($xmlstring);
答案 2 :(得分:0)
$xml=simplexml_load_file('book.xml');
$nodes= $xml->xpath("//Book/Contact[contains(.,'$NameToFind')]");
$count = count($nodes);