This commit is contained in:
2023-12-12 15:35:38 +08:00
parent 827fb257ab
commit 84c253a9f6
17 changed files with 271 additions and 302 deletions
+34 -34
View File
@@ -18,40 +18,40 @@ use Exception;
class Xml
{
/**
* @param $data
* @param bool $asArray
* @return array|object
* @throws Exception
*/
public static function toArray($data, bool $asArray = true): object|array
{
$data = \simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);
if ($data === false) {
throw new Exception('Parameter format error.');
}
$array = \get_object_vars($data);
if (isset($array[0])) {
$array[$data->getName()] = $array[0];
unset($array[0]);
}
return $array;
}
/**
* @param $data
* @param bool $asArray
* @return array|object
* @throws
*/
public static function toArray($data, bool $asArray = true): object|array
{
$data = \simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);
if ($data === false) {
throw new Exception('Parameter format error.');
}
$array = \get_object_vars($data);
if (isset($array[0])) {
$array[$data->getName()] = $array[0];
unset($array[0]);
}
return $array;
}
/**
* @param $str
* @return array|bool|object
* @throws Exception
*/
public static function isXml($str): object|bool|array
{
$xml_parser = \xml_parser_create();
if (!\xml_parse($xml_parser, $str, true)) {
\xml_parser_free($xml_parser);
return false;
} else {
return self::toArray($str);
}
}
/**
* @param $str
* @return array|bool|object
* @throws
*/
public static function isXml($str): object|bool|array
{
$xml_parser = \xml_parser_create();
if (!\xml_parse($xml_parser, $str, true)) {
\xml_parser_free($xml_parser);
return false;
} else {
return self::toArray($str);
}
}
}