AaronBS: XML-Element unverändert per XSL in HTML einbinden

Hi zusammen,
habe ein eigentlich triviales Problem, anscheinend zu trivial, um es erklären zu müssen, aber ich kriegs nicht hin...

Wie bekomme ich den kompletten Inhalt eines XML-Dokumentes (zumindest den des Root-Elemntes) nochmals redundant zur Kontrolle in mein generiertes HTML-Dokument? (einfach als text, mehr nicht)

<?xml version="1.0" encoding ="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>

<xsl:template match="root">
<html>
<head><title>Blabla</title></head>
<body>
... sind meine generierungsanweisungen
...
<hr/>
... und nun möchte ich den Inhalt der root oder besser DIE root oder noch besser das ganze dokument inklusive allem nochmal zur Kontrolle im Klartext sehen:

xsl:????????/

</body>
</html>
</xsl:template>
</xsl:stylesheet>

wer kann mit helfen???

thx :-)

  1. Hi,

    ... und nun möchte ich den Inhalt der root oder besser DIE root oder noch besser das ganze dokument inklusive allem nochmal zur Kontrolle im Klartext sehen:
    xsl:????????/

    xsl:copy-of/

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      ... und nun möchte ich den Inhalt der root oder besser DIE root oder noch besser das ganze dokument inklusive allem nochmal zur Kontrolle im Klartext sehen:
      xsl:????????/

      xsl:copy-of/

      cu,
      Andreas

      »»

      thx ein stückchen bin ich damit schon weiter,
      mit:
      <xsl:copy-of select="/"/>
      bekomme ich die Root nun ins HTML, aber dort ist sie im browser unsichtbar, d.h nur im Quelltext des Browsers zu sehen... Wie kriege ich das nun hin?

      mit einem <p class="xml"></p> drum herum klappts nicht, auch nicht mit <pre></pre> alles, was in spitzen Klammern steht, d.h. die xml-tags bleiben stets unsichtbar :-(

      Aaron

      1. Hi Aaron,

        mit:
        <xsl:copy-of select="/"/>
        bekomme ich die Root nun ins HTML, aber dort ist sie im browser unsichtbar, d.h nur im Quelltext des Browsers zu sehen... Wie kriege ich das nun hin?

        wenn du ASP benutzt, rendere eine Zeile wie
            response.write Server.HTMLEncode( objXML.xml )

        raus. Bei PHP oder anderen Servergeschichten gibt's sicher was Ähnliches.

        Gruß,
        Martin

        1. Danke Martin,
          leider habe ich lediglich einen xslt-Prozesoor zur Verfügung.

          D.h. Ich muß es irgendwie im xslt-Stylesheet umwandeln, d.h. die xml-tags in quasi "ungefährlichen" text, oder auf der HTML-Seite :-(

          Danke trotzdem für die Hilfe ;-)

          Weiß sonst noch wer einen Rat, bzw. gibt es eine Art Text-Zeichenersetzungsfunktion, die ich während der xslt-Transformation auf ein Element loslassen kann ?

          thx a lot :-)

          1. Hi,

            D.h. Ich muß es irgendwie im xslt-Stylesheet umwandeln, d.h. die xml-tags in quasi "ungefährlichen" text, oder auf der HTML-Seite :-(

            (mangels Testumgebung ungetestet):

            <xsl:output cdata-section-elements="pre" />

            <pre><xsl:copy-of select="/" /></pre>

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  2. Hallo,

    Wie bekomme ich den kompletten Inhalt eines XML-Dokumentes (zumindest den des Root-Elemntes) nochmals redundant zur Kontrolle in mein generiertes HTML-Dokument? (einfach als text, mehr nicht)

    Folgendes habe ich mit Saxon:
    (der Namensraum xhtml ist nötig, damit die Elemente nicht nach HTML-Syntax ausgegeben werden)

    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xhtml">
    <xsl:output method="xhtml:xhtml" encoding="iso-8859-1" />

    <xsl:template match="/">
    <html>
    <head>
     <title>Untitled</title>
    </head>

    <body>
    <form action="">
     <textarea cols="100" rows="20">
      <xsl:copy-of select="/" />
     </textarea>
    </form>
    </body>
    </html>
    </xsl:template>

    </xsl:stylesheet>

    1. Hi,

      <?xml version="1.0" encoding="iso-8859-1"?>
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xhtml">
      <xsl:output method="xhtml:xhtml" encoding="iso-8859-1" />
      <xsl:template match="/">
      <form action="">
      <textarea cols="100" rows="20">
        <xsl:copy-of select="/" />

      Und was, wenn das xml-Dokument ein textarea-Element enthält?
      In einer textarea müssen < und & durch ihre Entities dargestellt werden.
      Das geschieht bei Deiner Lösung nicht.

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. Hallo,

        Und was, wenn das xml-Dokument ein textarea-Element enthält?

        Natürlich ist das dumm weil die Lösung nicht funktioniert.
        Aber ich könnte die selbe Frage an dich bzw. an deine Lösung stellen.
        -----
        <xsl:output cdata-section-elements="pre" />
        <pre><xsl:copy-of select="/" /></pre>
        ------

        In einer textarea müssen < und & durch ihre Entities dargestellt werden.
        Das geschieht bei Deiner Lösung nicht.

        Das ist auch wahr, aber ebenso nicht mein Problem wie, dass die von dir geforderte Ersetzung  bei deiner Lösung ebenfalls nicht geschieht.

        Und was machen wir jetzt?

        Ich habe einige Möglichkeiten ausprobiert und meine "Lösung" war noch die einfachste und effektivste.

        Grüße
        Thomas

        1. Hi,

          <xsl:output cdata-section-elements="pre" />
          <pre><xsl:copy-of select="/" /></pre>

          Ich hatte das nicht getestet und mich nur an das gehalten, was im Standard steht:

          For example,
          <xsl:output cdata-section-elements="example"/>
          would cause a literal result element written in the stylesheet as
          <example><foo></example>

          cu,
          Andreas

          --
          Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
          http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
          1. Hallo Andreas,

            <xsl:output cdata-section-elements="pre" />
            <pre><xsl:copy-of select="/" /></pre>

            Ich hatte das nicht getestet

            Das hast du in der Tat gesagt.

            und mich nur an das gehalten, was im Standard steht:

            sorry... *hüstel* <leise>Nicht wirklich.</leise>

            1. "cdata-section-elements specifies a list of the names of elements whose text node children should be output using CDATA sections"

            Beachte: text node children, und mit copy-of hast du nur Element-Kinder im <pre>.

            1. "The detailed semantics of each attribute will be described separately for each output method for which it is applicable. If the semantics of an attribute are not described for an output method, then it is not applicable to that output method."

            For example,
            <xsl:output cdata-section-elements="example"/>
            would cause a literal result element written in the stylesheet as
            <example><foo></example>

            Gilt erstens wie gesagt für Textinhalte eines Elements und zweitens nur wenn du method="xml" angibst, was du nicht machtest, womit method="html" angenommen wird. Und für diese ist cdata-section-elements "not applicable" --> siehe 2)

            method="xml" würde es zwar "bringen", dann aber kann der IE die Seite nicht anzeigen.

            Grüße
            Thomas

    2. Danke, mit Textarea funktioniert es für meine debugging-Zewecke prima :-)))) Angenehmer Nebeneffekt: ich kann durch das debug-xml scrollen und verliere das generierte HTML im Browser nicht aus den Augen :-)

      Die andere Methode, d.h. die Ausgabe durch die Änderung der Transformation selbst, werde ich auch noch probieren.

      Nochmals vielen Dank an alle, die geholfen haben!!!

      Aaron