如何使用php检查xml文件是否有多个子值

时间:2014-11-04 13:58:22

标签: php xml simplexml

我有xml文件$file.xml,其中包含以下内容

<?xml version="1.0"?>
<names><name>name1</name><name>name2</name><name>name3</name></names>

我需要一种方法来检查<names>是否有多个子<name>,这意味着如果文件超过<name>name1</name>,则意味着如果存在<name>name2</name>或更多调用函数。

我试过以下

    $file = "file.xml";

    $result = file_get_contents($file);

    if(@count(file($result)) > 1) {

    //perform a function
    }

file_get_contents已经为我提供了值name1 name2name3

if(@count(file($result)) > 1) {没有做任何事情

提前致谢

1 个答案:

答案 0 :(得分:2)

是的,很可能,你可以结合这种情况使用xpath:

$file = "file.xml";
$xml = simplexml_load_file($file);
$names = $xml->xpath('/names/name');
if(count($names) > 1) {
    //perform a function
    echo 'perform!';
}

或者使用带有xpath的DOMDocument的替代方案:

$dom = new DOMDocument();
$dom->load($file);

$count = $xpath->evaluate('count(/names/name)');
if($count > 1) {
    echo 'perform!';
}