【问题标题】:PHP - Fetching xml values and returning conditional valuesPHP - 获取 xml 值并返回条件值
【发布时间】:2018-12-17 13:28:06
【问题描述】:

我正在获取一些 xml 并将其转换为类似于此帖子 PHP - Fetch correct XML values if elements have similar tags per record 的 csv。如果我在 csv 中有不正确的 Date 元素,例如 '0000-00-00' ...,我希望它为空 ''。

这是我的结构

XML 元素:

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

php xpath xmlreader:

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"  

我怎样才能做到这一点?

【问题讨论】:

    标签: php xml xpath xmlreader


    【解决方案1】:

    您可以通过将其分解为年-月-日然后使用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 个部分,并且所有部分都构成一个有效日期。

    【讨论】:

      猜你喜欢
      • 2013-02-14
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      相关资源
      最近更新 更多