2017-03-01 52 views
0

我需要使用XSL使用屬性值來改變我的相同元素:如何通過使用屬性值來改變xsl模板?

我輸入的XML是:

<span class="Option"> 
<span class="AnswerText">Female</span> 
</span> 

XSL我使用:

<xsl:template match="span"> 
     <p><xsl:apply-templates/></p> 
    </xsl:template> 

輸出我得到作爲:

<p><p>Female</p></p> 

但我想輸出像:

<p><ph>Female</ph></p> 

我需要通過使用屬性值來更改兩個span元素。請給我建議的代碼。在此先感謝

回答

0

你可以使用:

<xsl:template match="span[@class='Option']"> 
    <p> 
     <xsl:apply-templates/> 
    </p> 
</xsl:template> 

<xsl:template match="span[@class='AnswerText']"> 
    <ph> 
     <xsl:apply-templates/> 
    </ph> 
</xsl:template> 
+0

謝謝@ michael。它的工作正常 – User501

0

可以使用軸來檢查是否跨段父標籤跨度,然後應用模板相應

<xsl:template match="span"> 
     <xsl:choose> 
      <xsl:when test="parent::span"> 
       <ph> 
        <xsl:apply-templates/> 
       </ph> 
      </xsl:when> 
      <xsl:otherwise> 
       <p> 
        <xsl:apply-templates/> 
       </p> 
      </xsl:otherwise> 
     </xsl:choose> 
    </xsl:template> 

輸出:

<p> 
    <ph>Female</ph> 
</p> 
+0

謝謝@ jarek。它正在工作 – User501