public static function expand(\DOMNode $context, $nodes)
{
$document = $context instanceof \DOMDocument ? $context : $context->ownerDocument;
$result = $document->createDocumentFragment();
if (!self::isTraversableOfNodes($nodes)) {
$nodes = [$nodes];
}
foreach ($nodes as $node) {
if ($node instanceof \DOMNode) {
self::add($result, $node);
} elseif (self::isStringCastable($node)) {
$result->appendChild($document->createTextNode((string) $node));
} else {
throw new \InvalidArgumentException('Argument needs to be a dom node or castable into a string');
}
}
return $result->childNodes->length > 0 ? $result : NULL;
}