gpt4 book ai didi

作为 XML 文档的 PHP 对象

转载 作者:IT王子 更新时间:2023-10-29 00:49:19 24 4
gpt4 key购买 nike

获取给定 PHP 对象并将其序列化为 XML 的最佳方法是什么?我正在查看 simple_xml 并使用它来将 XML 解析为对象,但我不清楚它是如何工作的。

最佳答案

我同意使用 PEAR 的 XML_Serializer,但如果您想要一些简单的东西来支持具有嵌套属性的对象/数组,您可以使用它。

class XMLSerializer {

// functions adopted from http://www.sean-barton.co.uk/2009/03/turning-an-array-or-object-into-xml-using-php/

public static function generateValidXmlFromObj(stdClass $obj, $node_block='nodes', $node_name='node') {
$arr = get_object_vars($obj);
return self::generateValidXmlFromArray($arr, $node_block, $node_name);
}

public static function generateValidXmlFromArray($array, $node_block='nodes', $node_name='node') {
$xml = '<?xml version="1.0" encoding="UTF-8" ?>';

$xml .= '<' . $node_block . '>';
$xml .= self::generateXmlFromArray($array, $node_name);
$xml .= '</' . $node_block . '>';

return $xml;
}

private static function generateXmlFromArray($array, $node_name) {
$xml = '';

if (is_array($array) || is_object($array)) {
foreach ($array as $key=>$value) {
if (is_numeric($key)) {
$key = $node_name;
}

$xml .= '<' . $key . '>' . self::generateXmlFromArray($value, $node_name) . '</' . $key . '>';
}
} else {
$xml = htmlspecialchars($array, ENT_QUOTES);
}

return $xml;
}

}

关于作为 XML 文档的 PHP 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/137021/

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