2017-12-20 4 views
-2

Kann mir jemand helfen, die folgende XML mithilfe von XSLT-Vorlagen in HTML zu konvertieren.Konvertieren von XML in HTML mithilfe der XSLT-Vorlage

XML-Format:

<content> 
<para>Please click <link href="https://www.google.com">here</para> to navigate to Google search. 
</content> 

Expected HTML:

<p>Please click <a href="https://www.google.com">here</a> to navigate to Google search.</p> 

Ich habe mit der folgenden Vorlage versucht, nicht sicher, wie weiter verfahren ist.

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <html> 
    <body> 
    <p><xsl:value-of select="content/para"/><p> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 

Tatsächliches Ergebnis:

<p>Please click</p> 
+3

In StackOverflow wird von Ihnen erwartet, dass Sie zuerst versuchen, es selbst zu programmieren und zu zeigen, was Sie mit dem Fehler oder dem Problem, das Sie haben, versucht haben. – Dijkgraaf

+2

Sie haben uns die Anforderungen gegeben, aber Sie haben uns nicht gezeigt, was Sie versucht haben oder wo Sie Probleme haben. Es gibt keine eigentliche Frage. Es scheint eher wie eine ["Do haz teh codez?"] (Https://english.stackexchange.com/q/13231) Anfrage. –

+1

Bitte lesen Sie [** Warum ist "Kann mir jemand helfen?" Keine eigentliche Frage? **] (https://meta.stackoverflow.com/q/284236/290085) – kjhughes

Antwort

1

Beginnen Sie mit einem identity transform. Dies kopiert alles (Elemente, Attribute, Text, Kommentare, Verarbeitungsanweisungen) wie es ist.

Fügen Sie spezifischere Vorlagen hinzu, um die Verarbeitung durch die Identitätstransformation oder built-in template rules zu überschreiben.

Beispiel ...

XML Eingang (fest zu sein, gut geformten)

<content> 
    <para>Please click <link href="https://www.google.com">here</link> to navigate to Google search.</para> 
</content> 

XSLT 1,0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    <!-- Identity transform --> 
    <xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="/content"> 
    <html> 
     <body> 
     <xsl:apply-templates/> 
     </body> 
    </html> 
    </xsl:template> 

    <xsl:template match="para"> 
    <p> 
     <xsl:apply-templates select="@*|node()"/> 
    </p> 
    </xsl:template> 

    <xsl:template match="link"> 
    <a> 
     <xsl:apply-templates select="@*|node()"/> 
    </a> 
    </xsl:template> 

</xsl:stylesheet> 

Output

<html> 
    <body> 
     <p>Please click <a href="https://www.google.com">here</a> to navigate to Google search. 
     </p> 
    </body> 
</html> 

Es wäre auch eine gute Idee, eine good book on XSLT zu bekommen und das zuerst durchzulesen.

Verwandte Themen