Leerzeichen von Anfang eines xml Objekt entfernen – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self?srt=yes Leerzeichen von Anfang eines xml Objekt entfernen Fri, 14 Aug 15 06:29:34 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647914?srt=yes#m1647914 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647914?srt=yes#m1647914 <p>Hallo zusammen,</p> <p>in einer Datei wird ein XML-Objekt erstellt, dieser enthält am Anfang eine Leerzeile, dies möchte ich entfernen. Ruft FirfeFox, Version 38.2.0 ESR, wird folgende Fehlermeldung ausgegeben:</p> <pre><code class="block language-js"><span class="token constant">XML</span><span class="token operator">-</span> oder Text<span class="token operator">-</span>Deklaration nicht am Beginn der Entität <span class="token operator"><</span><span class="token operator">?</span>xml version<span class="token operator">=</span><span class="token string">"1.0"</span> encoding<span class="token operator">=</span><span class="token string">"UTF-8"</span><span class="token operator">?</span><span class="token operator">></span> </code></pre> <p>Die ausgeben XML-Datei beginnt folgend, als erstes eine Leerzeile:</p> <pre><code class="block language-xml"> <span class="token prolog"><?xml version="1.0" encoding="UTF-8"?></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>phrases</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>phrase</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>about.copy<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token cdata"><![CDATA[Copyright &copy; $1. Alle Rechte vorbehalten.]]></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>phrase</span><span class="token punctuation">></span></span> </code></pre> <p>Chrome und IE macht diese Leerzeile nichts aus, sie arbeiten Einwand frei.</p> <p>Codeausschnitt:</p> <pre><code class="block language-php"><span class="token variable">$xml</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">vB_AJAX_XML_Builder</span><span class="token punctuation">(</span><span class="token variable">$vbulletin</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'text/xml'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$xml</span><span class="token operator">-></span><span class="token function">add_group</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'phrases'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$vbphrase</span> <span class="token keyword">AS</span> <span class="token variable">$key</span> <span class="token operator">=></span> <span class="token variable">$phrase</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$xml</span><span class="token operator">-></span><span class="token function">add_tag</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'phrase'</span><span class="token punctuation">,</span> <span class="token variable">$phrase</span><span class="token punctuation">,</span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$key</span><span class="token punctuation">,</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token variable">$xml</span><span class="token operator">-></span><span class="token function">close_group</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'group'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$xml</span><span class="token operator">-></span><span class="token function">print_xml</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> Leerzeichen von Anfang eines xml Objekt entfernen Fri, 14 Aug 15 06:49:32 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647915?srt=yes#m1647915 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647915?srt=yes#m1647915 <p>Tach!</p> <blockquote> <p>in einer Datei wird ein XML-Objekt erstellt, dieser enthält am Anfang eine Leerzeile, dies möchte ich entfernen.<br> Chrome und IE macht diese Leerzeile nichts aus, sie arbeiten Einwand frei.</p> </blockquote> <p>Fehlt hier nicht noch ein Teil der Fragestellung?</p> <blockquote> <p>$xml->print_xml();</p> </blockquote> <p>Gibt es eine Möglichkeit, das XML nicht direkt auszugeben, sondern erstmal als bearbeitbaren String zu bekommen? Dann ein trim() anwenden und weg sind die Whitespaces außendrumherum.</p> <p>dedlfix.</p> Leerzeichen von Anfang eines xml Objekt entfernen Fri, 14 Aug 15 07:32:12 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647917?srt=yes#m1647917 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647917?srt=yes#m1647917 <p>Tach!</p> <blockquote> <p>in einer Datei wird ein XML-Objekt erstellt, dieser enthält am Anfang eine Leerzeile, dies möchte ich entfernen.</p> </blockquote> <p>Eine andere Möglichkeit könnte sein, dass die Whitespace-Zeichen außerhalb von <?php ?> stehen. Wenn ein ?> am Ende einer Datei steht, kann und sollte man es weglassen, damit sich danach keine Whitespace-Zeichen einschmuggeln.</p> <p>dedlfix.</p> Leerzeichen von Anfang eines xml Objekt entfernen Fri, 14 Aug 15 07:34:27 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647918?srt=yes#m1647918 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647918?srt=yes#m1647918 <p>@@Antot</p> <blockquote> <p>Die ausgeben XML-Datei beginnt folgend, als erstes eine Leerzeile:</p> </blockquote> <p>Dann ist es keine XML-Datei.</p> <p><a href="http://www.w3.org/TR/REC-xml/#NT-document" rel="nofollow noopener noreferrer">Regel Nr.1</a> (gefolgt von 22, 23): In XML darf vor der XML-Deklaration (wenn eine solche vorhanden ist) nichts stehen, auch kein Whitespace.</p> <p>Der Firefox verhält sich also korrekt, bei einem <a href="http://www.w3.org/TR/REC-xml/#dt-fatal" rel="nofollow noopener noreferrer">fatalen Fehler</a> ist die weitere Verarbeitung einzustellen.</p> <blockquote> <p>Chrome und IE macht diese Leerzeile nichts aus, sie arbeiten Einwand frei.</p> </blockquote> <p>AFAIS tun sie das nicht. Sie mögen so arbeiten wie du es gern hättest, aber einwandfrei ist was anderes.</p> <p>LLAP </p> <div class="signature">-- <br> Ist diese Antwort <em>anstößig</em>? Dann könnte sie <a href="http://forum.selfhtml.org/self/2015/jun/21/select-felder/1643860#m1643860" rel="noopener noreferrer"><em>nützlich</em></a> sein. </div> Leerzeichen von Anfang eines xml Objekt entfernen Fri, 14 Aug 15 07:27:24 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647916?srt=yes#m1647916 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647916?srt=yes#m1647916 <p>Moin!</p> <blockquote> <blockquote> <p>$xml->print_xml();</p> </blockquote> <p>Gibt es eine Möglichkeit, das XML nicht direkt auszugeben, sondern erstmal als bearbeitbaren String zu bekommen? Dann ein trim() anwenden und weg sind die Whitespaces außendrumherum.</p> <p>dedlfix.</p> </blockquote> <p>Genau so. Allerdings würde ich dazu neigen schon die Klasse passend umzubauen. Das heisst, wenn dem nichts entgegen steht, z.B. die Updatefähigkeit, es geht ja wohl (da nehme ich mal frech aus dem Name der Klasse) um Fertigsoftware, hier vBulletin oder wie das Zeug heisst.</p> <p>Die Klasse vB_AJAX_XML_Builder muss ja irgend wo her kommen. Also gibts wahrscheinlich ein include oder require (-once) in dem die Klasse gebaut wird. Darin die Methode print_xml() suchen und wie von dedlfix gesagt ändern.</p> <p>Und wenn man das getan hat, dem Hersteller der Software bzw. Bibliothek die eigene Änderung ganz freundlich aufzwingen, z.B. durch einen Bugreport.</p> <p>Jörg Reinholz</p> Leerzeichen von Anfang eines xml Objekt entfernen Fri, 14 Aug 15 08:18:22 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647923?srt=yes#m1647923 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647923?srt=yes#m1647923 <p>Moin!</p> <blockquote> <p>Eine andere Möglichkeit könnte sein, dass die Whitespace-Zeichen außerhalb von <?php ?> stehen.</p> </blockquote> <p>Genau Richtig! Zu suchen in der eigentlichen Datei, aber auch in allen Biblioteken / Includes. In letzteren mit Hinblick auf das Problem des TO nicht nur am Anfang, sondern auch am Ende. Und wie dedlfix auch ausführt: da schließende ?> sollte man genau zur Vermeidung derartiger Probleme bei Biblioteken / Includes stets weglassen.</p> <p>Jörg Reinholz</p> Leerzeichen von Anfang eines xml Objekt entfernen Fri, 14 Aug 15 09:37:25 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647943?srt=yes#m1647943 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647943?srt=yes#m1647943 <p>Hi,</p> <p>wie schon Jörg erkannt hat, ja, es handelt sich um eine Datei aus dem vbulletin Forum , in diesem Fall um die Version 4.2.2, die Editordatei: ckeditor.php</p> <p>Euren Vorschlag habe ich umgesetzt, alle Leerzeilen aus der Datei entfernt, auch alle Leerzeichen am Ende der Zeilen entfernt, leider hat es nicht geholfen, der Fehler wird nach wie vor angezeigt.</p> <p>Danke für Eure Anmerkung. Schönes Wochenende.</p> Leerzeichen von Anfang eines xml Objekt entfernen Fri, 14 Aug 15 11:14:14 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647954?srt=yes#m1647954 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1647954?srt=yes#m1647954 <p>Moin!</p> <blockquote> <p>wie schon Jörg erkannt hat, ja, es handelt sich um eine Datei aus dem vbulletin Forum , in diesem Fall um die Version 4.2.2, die Editordatei: ckeditor.php</p> </blockquote> <p>Du musst in allen inkludierten Dateien nach solchen suchen, die mit einer Leerzeile beginnen. Oder eben nachschauen, ob die Methode print_xml () die Leerzeile selbst erzeugt. bzw. ob es einen Ersatz im Sinne von</p> <pre><code class="block language-php"><span class="token keyword">print</span> <span class="token function">trim</span><span class="token punctuation">(</span><span class="token variable">$xml</span><span class="token operator">-></span><span class="token function">get_xml</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>gibt.</p> <p>Jörg Reinholz</p> Leerzeichen von Anfang eines xml Objekt entfernen Mon, 17 Aug 15 06:30:52 Z https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1648153?srt=yes#m1648153 https://forum.selfhtml.org/self/2015/aug/14/leerzeichen-von-anfang-eines-xml-objekt-entfernen/1648153?srt=yes#m1648153 <p>Hi Jörg,</p> <p>danke für den Tipp. Fehler habe ich gefunden, das Forum wird eingebunden in ein CMS, um den ensprechenden Header "auszugeben". Eine CMS Datei hatte am Ende Leerzeilen, wurden die Entfernt, ist der Fehler verschwunden. Damit wäre mein Problem erledigt.</p>