2017-08-30 60 views
0

我是新手。我有以下xml使用XSLT格式化文本

<text> 
    <sentence type="grocery">I bought <fruit> apples</fruit> at the grocery store.</sentence> 
    <sentence type="grocery">I also bought <fruit> bananas</fruit> at the store.</sentence> 
    <sentence>Then, I bought a basket at another store.</sentence> 
</text> 

我怎樣才能在下面的格式(the fruits should be red or different color)顯示的文字:

"I bought <font color="red">apples</font> at the grocery store." 

"I also bought <font color="red">bananas</font> at the story." 

這裏是xsl:

<?xml version="1.0" encoding="UTF-8"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 



    <xsl:for-each select="text/sentence"> 

     <p><p> <xsl:value-of select="descendant-or-self::node()[contains(.,'')]" /></p> 


    </xsl:for-each> 


</xsl:template> 
</xsl:stylesheet> 

感謝。

+0

嗯,這是目標格式,HTML,PDF,東西else_瞭解如何在目標格式的文本一種特定的顏色標記,然後簡單地編寫模板包含正確標記的 ...。 –

+0

目標格式爲HTML。 –

+0

然後檢查任何基本的HTML和CSS教程,以標記具有特定顏色的元素https://developer.mozilla.org/en-US/docs/Learn/CSS/Styling_text/Fundamentals#Color –

回答

1

以下樣式表:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="/text"> 
    <html> 
     <body> 
      <xsl:apply-templates select="sentence"/> 
     </body> 
    </html> 
</xsl:template> 

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

<xsl:template match="fruit"> 
    <span style="color:red;"> 
     <xsl:apply-templates/> 
    </span> 
</xsl:template> 

</xsl:stylesheet> 

當施加到您的示例輸入,將返回:

結果

<html> 
    <body> 
     <p>I bought <span style="color:red;"> apples</span> at the grocery store.</p> 
     <p>I also bought <span style="color:red;"> bananas</span> at the story.</p> 
    </body> 
</html> 

呈現爲:

enter image description here

+0

謝謝邁克爾。你的XSL的作品!我有另一個問題。如果我只需要顯示呢?請參閱上面編輯的xml。我添加了一個屬性。非常感謝您的幫助! –

+0

將''更改爲''。 –