dedlfix: xml CDATA

Beitrag lesen

Hi!

Warum soll es denn unbedingt eine CDATA-Section sein?
weil ich dann zeilenumbrüche, links etc übergeben kann.

CDATA geht nunmal mit SimpleXML nicht. Aber:

< und > zu maskieren innerhalb eines *normalen* Textknotens reicht doch idR. vollkommen aus.
das ist eigentlich alles was ich wissen will, wie maskier ich mein < und > so dass das es in meiner xml datei ankommt?

Gar nicht. Das macht SimpleXML für dich. Du übergibst nur Rohdaten und zwar UTF-8-kodiert. Was anderes kann SimpleXML auch nicht. Und das kommt dann auch wieder als UTF-8 raus. Wenn du nicht ständig zwischen UTF-8 und dem von die ansonsten verwendetem ISO-8859-1 hin- und herkodieren willst, empfahl ich dir, komplett auf UTF-8 umzusteigen.

ja, aber gibt es deine keine methode dem xml zu sagen lass die finger von diesem < oder >, in php geht es doch auch mit backslash zB:

Nicht mit SimpleXML.

Aber wie du siehst, geht es mit den Zeichen < und > schon von selber korrekt um - also wozu noch unbedingt CDATA verwenden?
weil es ohne cdata nicht geht! soabld ich nen <a href  /> oder nen p, h1 oder was auch immer tag öffne denkt der xml ohne cdata ich würd nen xmltag öffnen,

Ja, weil du die Zeichen mit Sonderbedeutung in XML (<, >, & sowie teilweise " und ') nicht XML-gerecht notierst. Mit CDATA kann man sich das sparen, ohne nicht.

will ich aber nicht, deshalb cdata,

Kein Problem, wenn du das zu Fuß einträgst. SimpleXMK kann CDATA nicht (wie gesagt) und behandelt dafür die XML-Sonderzeichen anderweitig, dafür aber korrekt und ohne CDATA-Section. Mit den vielen &lt;&gt; drin lässt sich das schwerer lesen, aber wenn dich das stört, darfst du eben kein SimpleXML nehmen. Message angekommen? SimpleXML heißt nicht umsonst "Simple".

nebenbei bemerkt, hab meine website und das xml file als utf-8 codiert und er übergibt mir immer noch &lt; und &gt; , also das hilft mir nicht wirklich weiter

SimpleXML wandelt die XML-gerecht notierten Inhalte in Rohdaten zurück, wenn man Inhalte abfragt. Auch die DOM-Extension arbeitet so. Wenn du HTML-Code in einer XML-Datei speichern willst und dieser dort korrekt eingefügt ist (roh im CDATA-Bereich oder maskiert außerhalb), dann bekommst du den stets in Rohform wieder raus. Wenn du selbst maskierst, wird's Mist.

naja, ich bin auf dem weg weit gekommen ^^ und ich werd auch noch dieses problem lösen, irgendwie werd ich es schaffen ein  < und > zeichen in meine xml reinzubekommen, es muss doch irgendwie möglich sein von extern über php nen cdata tag in ne xml datei reinzubekommen

Entweder du lässt SimpleXML einfach machen oder - wenn du die Feinheiten selbst kontrollieren willst - nimmst die DOM-Extension. Die ist aber nicht mehr simpel zu bedienen.

...a prospos, stelln wir die frage doch mal anders, wie kann ich denn irgendeinen tag hinzufügen? der muss dann ja auch mit  < bzw > ausgestattet sein die von xml ja auch nicht umgeschrieben werden dürfen da es sich ja sonst selbst nicht mehr versteht :P

Schieb Rohdaten rein und du bekommst Rohdaten raus. Reinschauen brauchst du nicht unbedingt - SimpleXML weiß was es tut.

oder kann ich dem xml file irgendwie sagen das es grundsätzlich IMMER cdata tags setzen soll..es kann doch einfach nicht so kompliziert sein, und wenn doch gibt es da, zumindest meiner meinung nach, zwingend nachholbedarf

Nicht mit SimpleXML. Das ist für simples XML-Handling ausgelegt, CDATA gehört nicht mehr dazu.

Lo!