gpt4 book ai didi

php - 如何将空 XML 节点转换为空字符串而不是 SimpleXMLElement

转载 作者:可可西里 更新时间:2023-10-31 23:49:36 26 4
gpt4 key购买 nike

我有一个有时有空节点的 XML 字符串。当使用 simplexml_load_string 解析它时,解析器将任何空节点(例如 <node></node>)解释为一个空的 SimpleXMLElement。实际上,我更希望这些以空字符串的形式出现,或者完全省略。

我试过使用 LIBXML_NOBLANKS,如下所示,但它似乎没有效果。下面是一些演示情况的代码。节点“p2”为空:

$xml = "<xml><p1>1</p1><p2></p2><p3>3</p3></xml>";

$obj = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOBLANKS);

header("Content-type: text/plain");

echo "STRING\n-----\n" . $xml;
echo "\n\nOBJ\n---\n" . print_r($obj,1);
echo "\n\nJSON\n----\n" . json_encode($obj);

最佳答案

这是空节点的工作示例:

    $nodes = $rootNode->xpath("//*[text()='']");
foreach ($nodes as $node) {
unset($node->{0});
}

unset($node->{0}) - 是一种破坏此节点并将其从父节点中移除的技巧。

关于php - 如何将空 XML 节点转换为空字符串而不是 SimpleXMLElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11768539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com