/ / HTML Markup in XML / XSLT - XML, Perl, Perl-Modul

HTML-Markup in XML / XSLT - XML, Perl, Perl-Modul

Teil eines Skripts, das XML generiert, das von XSLT aufgenommen und an eine HTML-Webseite ausgegeben wird.

use XML::Writer ;
$writer->emptyTag("Row" , "text" => $text  ) ;

Funktioniert gut, aber jetzt möchte ich etwas HTML-Markup dort einfügen ... Statt:

$text = "Line of text." ;

Ich brauche:

$text = qq |<span class="blah">Line of text.</span>| ;

Versuchte Änderung

<

zu

&lt;

und

>

zu

&gt;

in der string aber hat nicht funktioniert ...

(UPDATE: Reagieren auf einen Kommentar hier ... Als ich sagte, dass es "nicht funktioniert", war der Versuch, HTML-Markup zu durchlaufen, nicht erfolgreich, weil das Markup angezeigt wurde, anstatt verarbeitet zu werden. Mit anderen Worten, die Tags wurden nicht angewendet, sie erschienen nur als Teil des Textes. AC)

Danke allen. Ich lerne...

Antworten:

3 für die Antwort № 1

Das emptyTag Der Aufruf funktioniert wie erwartet, aber es sieht so aus, als ob XML :: Writer nicht versuchen würde, schlau für Sie zu sein und herauszufinden, ob Sie Daten übergeben, die schlecht formatierte XML ergeben.

Aus den Dokumenten von https://metacpan.org/pod/XML::Writer

LeerTag ($ name [, $ aname1 => $ Wert1, ...])

Add an empty tag to an XML document. Any arguments after the element

Name wird als Name / Wert-Paar für Attribute angenommen (Details siehe startTag ()):

Also, um das XML zu bekommen <span class="blah">Line of text.</span> Als Ergebnis würden Sie so etwas tun:

use XML::Writer;

my $writer = new XML::Writer;

$writer->startTag("span",class=>"blah");
$writer->characters("Line of text.");
$writer->endTag();