PHP SimpleXML可选子节点

时间:2015-01-25 03:13:33

标签: php xml simplexml

我试图根据他们的孩子分离我的子节点,但我无法弄清楚如何验证节点是否有值。

这是我的XML:

<?xml version="1.0"?>
<testcase>
 <steps>
 <step id="one">
    <command>gettitle</command>
 </step>
 <step id="two">
    <command>click</command>
    <parameter>id=searchByAddressSubmit</parameter>
 </step>
 </steps>
</testcase>

这是我的代码:

$testcase = new SimpleXMLElement($xml);
foreach($testcase->steps->step as $step) {
    echo $step->parameter;
    echo $step->command;    
    if(empty($step->parameter)) {
        echo $step>command;
    }
} 

结果应为:

gettitle

我尝试过empty(),array_key_exists()和is_null(),但似乎没有任何东西可以选择缺失的值。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果它确实是一个拼写错误并且你没有得到任何输出,那只是意味着你在这一行上有错误:

echo $step>command;

应为->

如果您已启用错误报告,则应该给出错误消息:

  

注意:使用未定义的常量命令 - 假设&#39;命令&#39;在

这应该是:

// turn on error reporting on development
error_reporting(E_ALL);
ini_set('display_errors', '1');

$testcase = new SimpleXMLElement($xml);
foreach($testcase->steps->step as $step) {   
    if(empty($step->parameter)) {
        echo $step->command; // fixed arrow operator
    }
}

Output