PHP - 获取 xml 值并返回条件值

PHP - Fetching xml values and returning conditional values

我正在获取一些 xml 并将其转换为类似于此 post 的 csv。如果我有一个不正确的日期元素,比如 '0000-00-00' ...在 csv 中我希望它是空的 ''。

这是我的结构

XML 元素:

<abc:ABC>5EXZX4LPK</abc:ABC>
<abc:Date>0000-00-00</abc:Date> 
<abc:Name>I Bornheim</abc:Name>

php xpath xml读者:

fputcsv(
  $output, 
  [
    $xpath->evaluate('string(abc:ABC)', $node),
    $xpath->evaluate('string(abc:Entity/abc:Date)', $node)        
    $xpath->evaluate('string(abc:Entity/abc:Name)', $node)
  ]
);

输出:

5EXZX4LPK,0000-00-00,"I Bornheim"  

期望的输出:

5EXZX4LPK,,"I Bornheim"  

我怎样才能做到这一点?

您可以通过将日期分解为年月日然后使用 checkdate()...

来检查它是否有效
$date = $xpath->evaluate('string(abc:Entity/abc:Date)', $node);
$parts = explode("-", $date);
$date = (count($parts)== 3) &&
    checkdate($parts[1], $parts[2], $parts[0]) ? $date : '';

这会用 - 展开日期并检查是否有 3 个部分并且所有部分组成一个有效日期。