gpt4 book ai didi

php - PHP SimpleXML 对象中消失的属性?

转载 作者:可可西里 更新时间:2023-11-01 12:49:19 25 4
gpt4 key购买 nike

我需要返回一个转换为 JSON 对象的 SimpleXML 对象,以便在 JavaScript 中使用它。问题是任何具有值的对象都没有属性。

举个例子:

<customer editable="true" maxChars="9" valueType="numeric">69236</customer>

成为 SimpleXML 对象:

"customer":"69236"

@attributes 对象在哪里?

最佳答案

这让我好几次发疯。当 SimpleXML 遇到只有文本值的节点时,它会丢弃所有属性。我的解决方法是在使用 SimpleXML 解析之前修改 XML。使用一些正则表达式,您可以创建一个包含实际文本值的子节点。例如,在您的情况下,您可以将 XML 更改为:

<customer editable="true" maxChars="9" valueType="numeric"><value>69236<value></customer>

一些示例代码假设您的 XML 字符串在 $str 中:

$str = preg_replace('/<customer ([^>]*)>([^<>]*)<\/customer>/i', '<customer $1><value>$2</value></customer>', $str);
$xml = @simplexml_load_string($str);

这将保留属性并将文本值嵌套在子节点中。

关于php - PHP SimpleXML 对象中消失的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8563073/

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