Problem mit transformNode

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit transformNode

    Hallo,

    Ich habe gerade angefangen mich etwas mit XML und Java zu beschäftigen. Nun suche ich schon fast verzweifelt eine Lösung für das folgende Problem...

    Hintergrund ist, dass ich eine XML Datei, die lokal auf der Festplatte liegt mit ein wenig JavaScript mit unterschiedlichen XSL-Stylesheets
    ausgegeben werden kann. Alles soll lokal auf meiner Festplatte statt finden. Verwendet wird IE6 (muss, da Firmen-PC).

    Nun habe ich als Testobjekt einigen Code im Internet gefunden, der auf der website von der der Code stammt als Demo auch funktioniert - bei mir leider nicht. Das Script läuft bis zum xml.transformNode, dann bricht es ab mit Fehler Code 0. und der Meldung 'Das Stylesheet enthält kein Dokumentelement'. Ich habe schon diverse Foren durchsucht aber keine Lösung gefunden.

    Woran könnte es liegen?

    Auch wenn man eine interne DTD verwendet ändert sich nichts.

    Ich wäre für Hinweise wirklich sehr dankbar.

    Gruss,
    Günter

    die verwendeten dateien...
    catalog.html

    Quellcode

    1. <html>
    2. <head>
    3. <script>
    4. function loadXMLDoc(fname)
    5. {
    6. var xmlDoc;
    7. xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    8. xmlDoc.async=false;
    9. xmlDoc.load(fname);
    10. return(xmlDoc);
    11. }
    12. function displayResult()
    13. {
    14. xml=loadXMLDoc("catalog.xml");
    15. xsl=loadXMLDoc("catalog.xsl");
    16. ex=xml.transformNode(xsl);
    17. document.getElementById("example").innerHTML=ex;
    18. xsltProcessor=new XSLTProcessor();
    19. xsltProcessor.importStylesheet(xsl);
    20. resultDocument = xsltProcessor.transformToFragment(xml,document);
    21. document.getElementById("example").appendChild(resultDocument);
    22. }
    23. </script>
    24. </head>
    25. <body id="example" onLoad="displayResult()">
    26. </body>
    27. </html>
    Alles anzeigen


    catalog.xml

    Quellcode

    1. <?xml version="1.0" standalone="yes"?>
    2. <catalog>
    3. <cd>
    4. <title>Empire Burlesque</title>
    5. <artist>Bob Dylan</artist>
    6. <country>USA</country>
    7. <company>Columbia</company>
    8. <price>10.90</price>
    9. <year>1985</year>
    10. </cd>
    11. <cd>
    12. <title>Test</title>
    13. <artist>Bob Test</artist>
    14. <country>Testland</country>
    15. <company>Testcompany</company>
    16. <price>9.99</price>
    17. <year>1999</year>
    18. </cd>
    19. </catalog>
    Alles anzeigen


    catalog.xls

    Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <xsl:stylesheet>
    3. <xsl:template match="/">
    4. <html>
    5. <body>
    6. <h2>My CD Collection</h2>
    7. <table border="1">
    8. <tr bgcolor="#9acd32">
    9. <th align="left">Title</th>
    10. <th align="left">Artist</th>
    11. </tr>
    12. <xsl:for-each select="catalog/cd">
    13. <tr>
    14. <td><xsl:value-of select="title" /></td>
    15. <td><xsl:value-of select="artist" /></td>
    16. </tr>
    17. </xsl:for-each>
    18. </table>
    19. </body>
    20. </html>
    21. </xsl:template>
    22. </xsl:stylesheet>
    Alles anzeigen
  • hallo unbekannterweise


    mehrer Fehler sind erzeugt durch dein xsl script erzeugt

    der namespace fehlt
    xsl sollte html code erzeugen
    nur htmlcode table beginnen


    daraus folgt
    xsl

    XML-Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3. <xsl:output indent="yes" method="html"/>
    4. <xsl:template match="/">
    5. <table border="1">
    6. <caption><h2>My CD Collection</h2> </caption>
    7. <tr bgcolor="#9acd32">
    8. <th align="left">Title</th>
    9. <th align="left">Artist</th>
    10. </tr>
    11. <xsl:for-each select="catalog/cd">
    12. <tr>
    13. <td>
    14. <xsl:value-of select="title"/>
    15. </td>
    16. <td>
    17. <xsl:value-of select="artist"/>
    18. </td>
    19. </tr>
    20. </xsl:for-each>
    21. </table>
    22. </xsl:template>
    23. </xsl:stylesheet>
    Alles anzeigen


    xsl tranzformation erzeugt

    Quellcode

    1. <table border="1">
    2. <caption>
    3. <h2>My CD Collection</h2>
    4. </caption>
    5. <tr bgcolor="#9acd32">
    6. <th align="left">Title</th>
    7. <th align="left">Artist</th>
    8. </tr>
    9. <tr>
    10. <td>Empire Burlesque</td>
    11. <td>Bob Dylan</td>
    12. </tr>
    13. <tr>
    14. <td>Test</td>
    15. <td>Bob Test</td>
    16. </tr>
    17. </table>
    Alles anzeigen
    Helmut Hagemann
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut.
  • Hallo xml_looser

    Vielen Dank für die Antwort.

    Leider ergibt sich dadurch auch keine Lösung der Problems...

    Das Javaskript bringt immer noch den gleichen Fehler. Mit dem javaskript sollte man später mal verschiedene xsl-files zur Ausgabe derselben xml-Daten verwenden können...

    Gruss,

    Günter



    Edit:

    Sorry, Problem hat sich gelöst - XLS war nicht wohlgeformt...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von guek ()