从XML节点提取布尔值的正确方法是什么?我试过这个:

<?php
$xml = "<node><code>false</code></node>";

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

$nodeList = $dom->getElementsByTagName('code');
if ($nodeList->length == 1) {
    if($nodeList->item(0)->nodeValue){
        echo 'VALID';
    } else {
        echo 'NOT VALID';
    }
}
?>

但结果是我得到了VALID

最佳答案

nodeValue将返回一个字符串,因此需要进行字符串比较。例如:

if($nodeList->item(0)->nodeValue != 'false'){
    echo 'VALID';
} else {
    echo 'NOT VALID';
}

您还可以考虑使用filter_var($string, FILTER_VALIDATE_BOOLEAN)将值转换为布尔值(例如,它还将“1”或“yes”转换为布尔值),具体取决于您在xml中获得的值的类型。

关于php - 具有 bool 值的DOMDocument节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39747010/

10-13 00:47