Skip to content

Commit 300f551

Browse files
sy-recordstwose
andauthored
Fix ArgumentCountError (#1)
* fix ArgumentCountError * add xml to array * fix * Update DataParser.php Co-authored-by: twosee <[email protected]>
1 parent fad83bb commit 300f551

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/DataParser.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
* @method static string toXmlString(array $var)
2424
* @method static DOMDocument toDomObject(string $var)
2525
* @method static string toMultipartString(array $var, string $boundary)
26+
* @method static array toXmlArray(string $xml)
2627
*/
2728
class DataParser
2829
{
@@ -81,11 +82,11 @@ public static function __callStatic($name, $arguments)
8182
}
8283
$callMap = static::getCallableMap();
8384
if (TypeDetector::canBeArray($var) && isset($callMap[$name]['supports']['array'])) {
84-
return $callMap[$name]['supports']['array']($var);
85+
return $callMap[$name]['supports']['array'](...$arguments);
8586
} elseif (TypeDetector::canBeString($var) && isset($callMap[$name]['supports']['string'])) {
86-
return $callMap[$name]['supports']['string']($var);
87+
return $callMap[$name]['supports']['string'](...$arguments);
8788
} elseif (is_object($var) && isset($callMap[$name]['supports']['object'])) {
88-
return $callMap[$name]['supports']['object']($var);
89+
return $callMap[$name]['supports']['object'](...$arguments);
8990
}
9091

9192
throw new InvalidArgumentException(
@@ -177,4 +178,12 @@ public static function arrayToMultipartString(array $var, string $boundary): str
177178

178179
return $ret;
179180
}
181+
182+
public static function stringToXmlArray(string $xml): array
183+
{
184+
libxml_disable_entity_loader(true);
185+
$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
186+
187+
return json_decode(json_encode($xmlstring), true);
188+
}
180189
}

0 commit comments

Comments
 (0)