PHP SimpleXML对象中消失的属性?
发布时间:2020-12-13 18:20:09 所属栏目:PHP教程 来源:网络整理
导读:我需要返回一个转换为 JSON对象的SimpleXML对象,以便在 JavaScript中使用它.问题是任何具有值的对象都没有属性. 举个例子: customer editable="true" maxChars="9" valueType="numeric"69236/customer 变为SimpleXML对象: "customer":"69236" @attributes
我需要返回一个转换为
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); 这将保留属性并将文本值嵌套在子节点中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容