2017-09-05 14 views
0

XSLTにカスタムタグや関数を追加することができます。私は再び説明します。include-htmlを私のデモに追加できます。include-htmlがスタイルシートに見つかると、XSLTのロジックを追加できます。 apply-templateで行います)、値を取得して出力してください。xsltでカスタムタグを追加するには?

ここは私のコードです。 http://xsltransform.net/6pS1zDt/1

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
    <xsl:output method="html" doctype-public="XSLT-compat" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" /> 

    <xsl:template match="/"> 
     <hmtl> 
     <head> 
      <title>New Version!</title> 
     </head> 
     <include-html>a</include-html> 
     </hmtl> 
    </xsl:template> 

    <xsl:template match="a"> 
    <xsl:variable name="ab" select="'ss'"/> 
    <p><xsl:value-of select="$ab"/></p> 
</xsl:template> 
</xsl:transform> 

私の例では、私はinclude-html value.Noのa値を書いています、それはあなたがでこれを達成することができますテンプレートと一致して**<p>ss</p>**

<include-html>a</include-html> 

の予想される出力

**<p>ss</p>** 
+0

あなたはhtからやり直す必要がありますtps://www.w3schools.com/xml/xsl_intro.asp –

+0

@MatthewWhited私はこれらのことを知っています – naveen

答えて

0

を返しますある種のメタスタイルシート(leトンの名前それtest.xslt):あなたは

xsl.sh test.xslt test.xslt 

のようなXSLT XML入力として、あなたのXSLTプロセッサにこれを渡すと

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
    <xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" /> 

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

    <xsl:template match="/whatever"> 
     <hmtl> 
     <head> 
      <title>New Version!</title> 
     </head> 
     <include-html>a</include-html> 
     </hmtl> 
    </xsl:template> 

    <xsl:template match="include-html[text()='a']"> 
    <xsl:variable name="ab" select="'ss'"/> 
    <p><xsl:value-of select="$ab"/></p> 
    </xsl:template> 

</xsl:transform> 

出力に近い

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
    <xsl:output method="xml" 
       omit-xml-declaration="yes" 
       encoding="UTF-8" 
       indent="yes"/> 

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

    <xsl:template match="/whatever">  <!-- must NOT match --> 
     <hmtl> 
     <head> 
      <title>New Version!</title> 
     </head> 
     <p>ss</p>      <!-- REPLACED! --> 
     </hmtl> 
    </xsl:template> 

    <xsl:template match="include-html[text()='a']"> 
     <xsl:variable name="ab" select="'ss'"/> 
     <p> 
     <xsl:value-of select="$ab"/> 
     </p> 
    </xsl:template> 

</xsl:transform> 

ですあなたが欲しいもの、私は思います...

関連する問題