Ich möchte, dass es so zurückgegeben wird, wie es ist, aber die Signaturbibliothek verlangt, dass ich es in DOMDocument konvertiere, aber es werden Warnungen zu den Entitäten und dann zum documentElement ausgegeben ist nicht festgelegt.
Ich könnte es stattdessen als HTML analysieren, aber dadurch wurden falsche -Tags und -Tags hinzugefügt, sogar mit LIBXML_HTML_NOIMPLIED Flag angegeben.
Ich könnte auch LIBXML_DTDLOAD übergeben, was eine korrekte Analyse ermöglicht, aber dadurch wird meine XML-Entitätsdatei direkt in der Antwort ausgegeben, was die Rückgabelänge um ein Vielfaches erhöht mal vorbei.
Gibt es also eine Möglichkeit, DOMDocument einfach dazu zu bringen, meine XML-Zeichenfolge zu laden, ohne dass es aufgrund unbekannter Entitäten fehlschlägt, oder ohne die XML-Zeichenfolge zu berühren oder die DTD zu analysieren, ohne sie zu erstellen? ein eigenständiges XML?
Ich mache im Moment Folgendes, wodurch es nicht richtig analysiert wird.
Code: Select all
// minified XML string
$output = '
%xhtml-all;
]>
ä';
$xml = new DOMDocument();
// Whitespaces must be preserved
$xml->preserveWhiteSpace = true;
$xml->formatOutput = false;
$xml->strictErrorChecking = false;
$xml->loadXML($output);
// Canonicalize the content, exclusive and without comments
if (!$xml->documentElement) { // this fails to have any content
throw new XmlSignerException('Undefined document element');
}