Zitat von wahsaga
Beitrag anzeigen
php xml DOMDocument einfügen von Zeichen "&" geht nicht
Einklappen
X
-
Dann ist es aber kein reiner Text mehr, sondern XML-kodierter Text. Wozu sich also die "Arbeit" machen, wenn DOMDocument das bereits selber kann?
-
Eben doch, sobald das & XML-gerecht kodiert im Parameter übergeben wird.Zitat von h3ll Beitrag anzeigenEben nicht, das war ja sein Problem.
Einen Kommentar schreiben:
-
Eben nicht, das war ja sein Problem.Zitat von wahsaga Beitrag anzeigenMuss nicht, createElements zweiter Parameter tut’s auch.
Einen Kommentar schreiben:
-
Muss nicht, createElements zweiter Parameter tut’s auch.Zitat von h3ll Beitrag anzeigenDu musst einen Textnode erstellen, wenn du Text einfügen möchtest.
Faule Ausrede, display_errors setzen und sie werden dir auch direkt mit der Ausgabe des Scriptes angezeigt.Zitat von choelbing Beitrag anzeigenguter Tip, jetzt muss ich nur noch mein Provider informieren, dass ich irgendwie die errorlog Datei lesen muss.
Damit wären wir zurück beim ersten Hinweis, Textdaten korrekt zu behandeln – wie gesagt, ist & hier korrekt, und damit täte es auch schon dein bisheriger Code.gibt es jetzt noch eine möglichkeit das das das Symbol "&" auch in der xml struktur richtig also als "&" gespeicht wird und nicht als & ?
Einen Kommentar schreiben:
-
& ist richtig. Ein &-Zeichen alleine wäre fehlerhaft. Außer du verwendest eine CDATA-Section:Zitat von choelbing Beitrag anzeigengibt es jetzt noch eine möglichkeit das das das Symbol "&" auch in der xml struktur richtig also als "&" gespeicht wird und nicht als & ?
PHP-Code:$document = new DOMDocument();
$document->formatOutput = true;
$buchliste = $document->appendChild($document->createElement('buchliste'));
$buch = $buchliste->appendChild($document->createElement('buch'));
$autor = $buch->appendChild($document->createElement('autor'));
$autor->appendChild($document->createCDATASection('Gustav & Franz'));
echo $document->saveXML();
Code:<?xml version="1.0"?> <buchliste> <buch> <autor><![CDATA[Gustav & Franz]]></autor> </buch> </buchliste>
Einen Kommentar schreiben:
-
sehr gut, das ist der perfekt Hinweis den ich gesucht habe.Zitat von h3ll Beitrag anzeigenDu musst einen Textnode erstellen, wenn du Text einfügen möchtest.
PHP: DOMDocument::createTextNode - Manual
PHP-Code:$document = new DOMDocument();
$document->formatOutput = true;
$buchliste = $document->appendChild($document->createElement('buchliste'));
$buch = $buchliste->appendChild($document->createElement('buch'));
$autor = $buch->appendChild($document->createElement('autor'));
$autor->appendChild($document->createTextNode('Gustav & Franz'));
echo $document->saveXML();
Code:<?xml version="1.0"?> <buchliste> <buch> <autor>Gustav & Franz</autor> </buch> </buchliste>
gibt es jetzt noch eine möglichkeit das das das Symbol "&" auch in der xml struktur richtig also als "&" gespeicht wird und nicht als & ?
Einen Kommentar schreiben:
-
Du musst einen Textnode erstellen, wenn du Text einfügen möchtest.
PHP: DOMDocument::createTextNode - Manual
PHP-Code:$document = new DOMDocument();
$document->formatOutput = true;
$buchliste = $document->appendChild($document->createElement('buchliste'));
$buch = $buchliste->appendChild($document->createElement('buch'));
$autor = $buch->appendChild($document->createElement('autor'));
$autor->appendChild($document->createTextNode('Gustav & Franz'));
echo $document->saveXML();
Code:<?xml version="1.0"?> <buchliste> <buch> <autor>Gustav & Franz</autor> </buch> </buchliste>Zuletzt geändert von h3ll; 27.02.2015, 18:39.
Einen Kommentar schreiben:
-
guter Tip, jetzt muss ich nur noch mein Provider informieren, dass ich irgendwie die errorlog Datei lesen muss.Zitat von wahsaga Beitrag anzeigenStellt das error_reporting vernünftig ein, so dass dir auch Warnings angezeigt werden – dann sagen PHP und DOMDocument dir Bescheid, woran es liegt.
keine Ahnung was du mir genau jetzt damit sagen willst.Zitat von wahsaga Beitrag anzeigenText-Daten ordnungsgemäß XML-gerecht behandeln.
& ist in XML genauso ein Sonderzeichen, wie in HTML auch. Und was würdest du in HTML mit ihm machen …?
Es gibt einmal eine String ohne dem Zeichen "&" und dann einen String mit "&".
Vielleicht hat ja noch jemand anders einen Tip woran es liegen könnte ;-)
Einen Kommentar schreiben:
-
Stellt das error_reporting vernünftig ein, so dass dir auch Warnings angezeigt werden – dann sagen PHP und DOMDocument dir Bescheid, woran es liegt.Zitat von choelbing Beitrag anzeigenworan liegt das
Text-Daten ordnungsgemäß XML-gerecht behandeln.und was müsste ich ändern damit ich dennoch eine gültige XML Struktur bekomme
& ist in XML genauso ein Sonderzeichen, wie in HTML auch. Und was würdest du in HTML mit ihm machen …?
Einen Kommentar schreiben:
-
php xml DOMDocument einfügen von Zeichen "&" geht nicht
hi ihr alle,
habe folgendes Problem mit dem einfügen von dem Zeichen &
konnte das Problem auf dieses einfache Beispiel reduzieren können.
bekomme ich folgende XML-StrukturPHP-Code:$buch_autor = "Gustav Franz";
$document = new DOMDocument();
$document -> formatOutput = TRUE;
$bliste = $document -> appendChild($document -> createElement('buchliste'));
$buch = $bliste -> appendChild($document -> createElement('buch'));
$buch -> appendChild($document -> createElement('autor', utf8_encode(trim($buch_autor))));
echo $document -> saveXML();
wenn ich jedoch erste Zeile durchPHP-Code:<buchliste>
<buch>
<autor>Gustav Franz</autor>
</buch>
</buchliste>
ersetzte, bekomme ich folgende XML-StrukturPHP-Code:$buch_autor = "Gustav & Donald";
woran liegt das und was müsste ich ändern damit ich dennoch eine gültige XML Struktur bekommePHP-Code:<buchliste>
<buch>
<autor/>
</buch>
</buchliste>
Einen Kommentar schreiben: