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 个部分并且所有部分组成一个有效日期。
我正在获取一些 xml 并将其转换为类似于此 post
这是我的结构
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 个部分并且所有部分组成一个有效日期。