Forum Doku Wiki Blog

Forumsarchiv 2002, November
Umlaute und Specialchars in TextNodes

archivierte Beiträge lesen

  1. (XML) Umlaute und Specialchars in TextNodes von Philipp Hasenfratz, 16. 11. 2002, 21:33

Umlaute und Specialchars in TextNodes

Der folgende Beitrag wurde am 16. 11. 2002, 21:33 Uhr von Philipp Hasenfratz veröffentlicht.

Halihallo Forumer

<programm>
   use strict;
   use XML::DOM;

   my $doc = XML::DOM::Document->new;

   my $root = $doc->createElement( 'root' );
   my $text = $doc->createTextNode( 'test äöü äöü test' );

   $doc->appendChild($root);
   $root->appendChild($text);

   print $doc->toString;
</programm>

wie bringe ich XML::DOM bei, folgendes auszugeben ...

test äöü äöü test

... statt ...

test &auml;&ouml;&uuml; äöü test

? - Ich weiss zwar, warum er die Amp's kodiert, jedoch nicht, wie man das umgehen kann. Muss man die Entities zuerst "registrieren", bevor er sie unkodiert stehen lässt?
Mich interessieren auch andere Fakten, die ich bei der Verwendung von XHTML über XML::DOM zu Wissen habe (gibt's da was zu beachten, muss man XML::DOM einige Sachen "beibringen/zu wissen geben"?).

Viele Grüsse

Philipp

Umlaute und Specialchars in TextNodes

Der folgende Beitrag wurde am 17. 11. 2002, 00:24 Uhr von Thomas J.S. veröffentlicht.

Hallo Philipp,

vielleicht mit:

&#38;auml;  etc.


> Mich interessieren auch andere Fakten, die ich bei der Verwendung von XHTML über XML::DOM zu Wissen habe (gibt's da was zu beachten, muss man XML::DOM einige Sachen "beibringen/zu wissen geben"?).
>

Da diese aber alles keine Fragen zu XML sind, habe ich mal das Thema geändert.

Grüße
Thomas

Umlaute und Specialchars in TextNodes

Der folgende Beitrag wurde am 17. 11. 2002, 16:35 Uhr von Philipp Hasenfratz veröffentlicht.

Halihallo Thomas

> vielleicht mit:
>
> &#38;auml;  etc.

Das gibt mir &#38;auml; aus. Jedes & wird schlicht weg in & umgewandelt. Gibt's eine Möglichkeit, dies mit XML::DOM zu unterbinden?

> > Mich interessieren auch andere Fakten, die ich bei der Verwendung von XHTML über XML::DOM zu Wissen habe (gibt's da was zu beachten, muss man XML::DOM einige Sachen "beibringen/zu wissen geben"?).
>
> Da diese aber alles keine Fragen zu XML sind, habe ich mal das Thema geändert.

Und wo stellte ich eine Perl-Frage? :-)

Viele Grüsse

Philipp

noch ein Tipp?

Der folgende Beitrag wurde am 18. 11. 2002, 13:04 Uhr von Philipp Hasenfratz veröffentlicht.

Halihallo Philipp Hasenfratz (ich liebe Automatismen *g*)

> wie bringe ich XML::DOM bei, folgendes auszugeben ...
>
> test äöü äöü test
>
> ... statt ...
>
> test &auml;&ouml;&uuml; äöü test

Tja, leider war ich noch nicht im Stande, die '&' unkodiert ausgeben zu lassen. Hat vielleicht noch wer eine Idee? - Mir werden, um es nochmals zu wiederholen, alle '&' in '&' ersetzt, was zwar normalerweise OK ist, jedoch in meinem Kontext nicht erwünscht ist.

Viele Grüsse

Philipp

PS: Ja, meine Tastatur klemmt und Thomas: Dir zuliebe habe ich auch auf Perl gestellt :-)

noch ein Tipp?

Der folgende Beitrag wurde am 18. 11. 2002, 14:07 Uhr von Christian Kruse veröffentlicht.

Hallo Philipp,

> Tja, leider war ich noch nicht im Stande, die '&' unkodiert
> ausgeben zu lassen. Hat vielleicht noch wer eine Idee? - Mir
> werden, um es nochmals zu wiederholen, alle '&' in '&'
> ersetzt, was zwar normalerweise OK ist, jedoch in meinem
> Kontext nicht erwünscht ist.

Wie siehts mit perldoc XML::DOM::Entity aus? Und mit
createCDATASection? Aus perldoc XML::DOM:

IMPLEMENTATION DETAILS
[...]

        Text and CDATASection nodes
           The Expat parser expands EntityReferences and
           CDataSection sections to raw strings and does not
           indicate where it was found.  This implementation
           does therefore convert both to Text nodes at parse
           time. CDATASection and EntityReference nodes that
           are added to an existing Document (by the user)
           will be preserved.

           Also, subsequent Text nodes are always merged at
           parse time. Text nodes that are added later can be
           merged with the normalize method. Consider using
           the addText method when adding Text nodes.

Gruesse,
 CK


--
http://cforum.teamone.de/

noch ein Tipp?

Der folgende Beitrag wurde am 18. 11. 2002, 19:49 Uhr von Philipp Hasenfratz veröffentlicht.

Halihallo Christian

Entschuldige die Verspätung und besten Dank für deine Antwort.

> > Tja, leider war ich noch nicht im Stande, die '&' unkodiert
> > ausgeben zu lassen. Hat vielleicht noch wer eine Idee? - Mir
> > werden, um es nochmals zu wiederholen, alle '&' in '&'
> > ersetzt, was zwar normalerweise OK ist, jedoch in meinem
> > Kontext nicht erwünscht ist.
>
> Wie siehts mit perldoc XML::DOM::Entity aus? Und mit
> createCDATASection? Aus perldoc XML::DOM:

Mit CDATA funktioniert es (komisch, als ich das vor langem versucht habe noch nicht... Naja, wohl mein Fehler). Spielt es den Browsern (XHTML) keine Rolle, ob sie normale Textnodes oder CDATASections bekommen? - Die Antwort sollte nein lauten, aber ich frage mal lieber.

Mit XML::DOM::Entity hab ich immer noch Probleme:

---
use strict;
use XML::DOM;

my $doc = XML::DOM::Document->new;

XML::DOM::DocumentType::addEntity( $doc, 0, 'auml', 'ä' );

my $root = $doc->createElement( 'root' );
my $text = $doc->createTextNode( 'test äöü test' );
my $cdat = $doc->createCDATASection( 'test ä test' );

$doc->appendChild($root);
$root->appendChild($text);
$root->appendChild( $cdat );

print $doc->toString;
---

stirbt mir bei XML::DOM::DocumentType::addEntity mit der Fehlermeldung:

"can't call method setNamedItem on an undefined value @ ...". Hätte jemand vielleicht eine Idee, woran dies liegen könnte?

Viele Grüsse

Philipp

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4