2014-11-14 64 views
0

我有一個XML格式的文件,並希望將其轉換爲另一種格式。爲什麼XSLT模板不工作?

第一種格式是:

<Project> 
<Requirements> 
    <Source>  
    <Section> 
     <Requirement> 
     <Content> 
      this is I<sub>leakage</sub> 
     </Content> 
     <Title></Title> 
     <Property name="Status"/> 
     </Requirement> 
    </Section> 
    </Source> 
</Requirements> 
</Project> 

而且我使用模板來改變這一子標籤爲標籤標

 this is I<sub>leakage</sub> 

 this is I<subscript>leakage</subscript> 

和我使用此模板進行轉換:

<xsl:template match="sub"> 
    <Subscript> 
     <xsl:value-of select="current()/text()"/> 
    </Subscript> 
</xsl:template> 

問題是模板不工作,儘管如果我把子標籤放在需求的外面(例如在Section下面),它可以正常工作。

任何想法如何解決這個問題?

+1

如果它工作,當你'子'標籤出'Requirement',東西沒有得到處理。您需要展示更多XSLT。 (至少是一個工作示例。) – 2014-11-14 20:50:49

+1

換言之,可能沒有apply-templates指令選擇要處理的子元素。 – 2014-11-14 22:12:44

回答

0

希望這有助於

<xsl:template match="sub"> 
<Subscript> 
    <xsl:value-of select="./text()"/> 
</Subscript> 
</xsl:template> 

這個工作在我結束。不同之處的原因可以在這裏找到: Current node vs. Context node in XSLT/XPath?

+0

「*這在我的結尾。*」OP的版本不是在你的最後? – 2014-11-15 11:31:02

+0

感謝您的快速回答,但我恐怕沒有幫助解決這個問題,它似乎是阻止此模板在Requirement塊 – 2014-11-17 23:41:48

+0

內工作請注意您的完整xslt – Saurav 2014-11-18 05:10:03