php - 如何检查XML元素中是否有文本

时间:2011-02-25 01:00:10

标签: php xml

:)让我们说我有那个代码:

<sample number="1">TEXT</sample>

但有时它可能是

<sample number"1"/>
问:如何检查它是否自行关闭?或者我想检查元素sample

中是否有TEXT

注意:我正在使用这种方式检索XML文档:

$content = @file_get_contents($url);
$xml = new SimpleXMLElement($content);

1 个答案:

答案 0 :(得分:2)

您需要键入将元素转换为字符串,然后检查它是否为空。 这是一个简单的例子:

$test = simplexml_load_string("<test><elem test='12'><sub /><sub /></elem><elem test='12'>hi</elem><elem test='9' /><elem /></test>");
foreach($test as $elem){

    echo "\n";
    var_dump($elem);
    if((string)$elem == '' && $elem->count() == 0)
        echo 'Empty';
    else
        echo 'Full';


}

将返回:

object(SimpleXMLElement)#3 (2) {
  ["@attributes"]=>
  array(1) {
    ["test"]=>
    string(2) "12"
  }
  ["sub"]=>
  array(2) {
    [0]=>
    object(SimpleXMLElement)#4 (0) {
    }
    [1]=>
    object(SimpleXMLElement)#5 (0) {
    }
  }
}
Full
object(SimpleXMLElement)#5 (2) {
  ["@attributes"]=>
  array(1) {
    ["test"]=>
    string(2) "12"
  }
  [0]=>
  string(2) "hi"
}
Full
object(SimpleXMLElement)#3 (1) {
  ["@attributes"]=>
  array(1) {
    ["test"]=>
    string(1) "9"
  }
}
Empty
object(SimpleXMLElement)#5 (0) {
}
Empty