如果xmlReader类中的属性值为空,我如何捕获?
我尝试了$reader->value == ''
和empty($reader->value)
但是没有用。
这就是看我的代码:
while ($reader->read()) {
if($reader->nodeType == XMLReader::ELEMENT) {
$name = $reader->name;
}
if($reader->nodeType == XMLReader::TEXT || $reader->nodeType == XMLReader::CDATA){
switch ($name) {
case 'zdjecie':
if (empty($reader->value) || !isset($reader->value)) {
$zdj = explode('\\',$reader->value);
$zdjName = end($zdj);
}else{
$zdjName = 'no_photo';
}
break;
}
}
if($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == 'produkt'){
$reader->next();
$i++;
}
}
答案 0 :(得分:0)
您是否尝试过isset()
,
if(empty($reader->value) || !isset($reader->value)){
}
答案 1 :(得分:0)
使用 XMLReader::getAttribute()
来读取属性;文档没有提到您可以使用属性来访问属性。
查看代码,empty($reader->value) || !isset($reader->value)
是多余的。 isset
只会针对null
进行检查,而empty
会在空字符串上返回true
(因为value
始终定义为XMLReader
)。
您可以使用empty($reader->value)
或!$reader->value
作为条件,但您已切换案例。
if (empty($reader->value)) { // or simply: !$reader->value
$zdjName = 'no_photo';
} else {
$zdj = explode('\\',$reader->value);
$zdjName = end($zdj);
}
+
提示:您应该知道,在XML中,空格被认为是节点值的一部分。