Ich arbeite an einer Vorlage-Engine, die von regex-DOM zu DOM-getriebene migriert hat. Es scheint jedoch, dass jedes Mal, wenn ich eine DomDocumentFragment
erstellen, um einen Teil eines Dokuments vorübergehend einzukapseln, das Namespace-Attribut jedem Knoten im Fragment hinzugefügt wird. Da mein Standard-Namespace für ein bestimmtes Dokument zu 99% XHTML ist, fügt es die XHTML-Namespace-Deklaration hinzu.Mit Dom Objects in PHP, der Standard-Namespace ist in einigen Knoten redeclariert
Da dies der Standard-Namespace ist, scheint dies fruchtlos zu sein, und letztendlich werden Knoten in einem anderen Namespace sowieso zur Renderzeit entfernt.
Abgesehen von der iterativen Entfernung von Namespace-Attributen gibt es eine Möglichkeit, wie ich verhindern kann, dass dies von vornherein geschieht? Es ist ziemlich problematisch, da dies die Dateigröße der Renderzeit beträchtlich erhöhen wird, da große Teile eines gegebenen Dokuments in einem Fragment gespeichert werden können.
Ich habe versucht $doc->normalizeDocument()
, aber wie ich annahm, tat es nichts.
ich dieses Verhalten auch gesehen habe, und andere daran erinnern, zu erklären, dass das Dokument Fragment ungültig ohne den Namensraum sein würde. Nie gehört, wie man es entfernt, nachdem ich das Fragment das größere "Eltern" Dokument hinzugefügt habe. Namespaces sind Overkill, ein großer Schmerz, und fügen keinen greifbaren geschäftlichen Wert hinzu. –