2017-12-20 6 views
-2

XSLTテンプレートを使用して次のXMLをHTMLに変換する手助けができますか?XSLTテンプレートを使用してXMLをHTMLに変換する

XML形式:

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

私がさらに進行する方法がわからない、以下のテンプレートを使用して試してみました:HTML期待

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

<?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> 

実際の結果:identity transform

<p>Please click</p> 
+3

StackOverflowでは、まず自分でコードを作成して試してみることをお勧めします。 – Dijkgraaf

+2

あなたは私たちに要件を与えましたが、あなたが試したことやどこに問題があるのか​​私たちには示されていません。実際の質問はありません。それは["あなたは危険にさらされますか?"](https://english.stackexchange.com/q/13231)リクエストのようです。 –

+1

実際の質問ではありませんか?[**](https://meta.stackoverflow.com/q/284236/290085) – kjhughes

答えて

1

スタート。これは、すべて(要素、属性、テキスト、コメント、処理命令)をそのままコピーします。

特定のテンプレートを追加して、恒等変換またはbuilt-in template rulesによる処理をオーバーライドします。 (整形式に固定)

例...

XML入力

<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> 

出力

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

また、good book on XSLTを取得し、最初にそれを読むことをお勧めします。

関連する問題