Xml xslt信息捕获
我有一个如下所示的xml输入:Xml xslt信息捕获,xml,xslt,Xml,Xslt,我有一个如下所示的xml输入: <food> <fruit>Orange</fruit> isGood <fruit>Kiwi</fruit> isGood <fruit>Durian</fruit> isBad </food> 橙色 很好 几维鸟 很好 榴莲 伊斯巴德 我想将其转换为如下所示的html语句: <food> <fruit&
<food>
<fruit>Orange</fruit>
isGood
<fruit>Kiwi</fruit>
isGood
<fruit>Durian</fruit>
isBad
</food>
橙色
很好
几维鸟
很好
榴莲
伊斯巴德
我想将其转换为如下所示的html语句:
<food>
<fruit>Orange</fruit>
isGood
<fruit>Kiwi</fruit>
isGood
<fruit>Durian</fruit>
isBad
</food>
橙色很好。猕猴桃很好吃。榴莲不好吃
请注意,水果元素均为斜体
我的代码如下所示。但它有问题
<xsl:template match="/" >
<food>
<xsl:apply-templates select="food"/>
</food>
</xsl:template>
<xsl:template match="food">
<xsl:element name="fruit">
<xsl:value-of select="fruit" />
</xsl:element>
</xsl:template>
您的XSLT似乎试图重现原始输入,而不是生成您想要的HTML输出 这里有一个这样做的例子 XML输入
<food>
<fruit>Orange</fruit>
isGood
<fruit>Kiwi</fruit>
isGood
<fruit>Durian</fruit>
isBad
</food>
橙色
很好
几维鸟
很好
榴莲
伊斯巴德
XSLT1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="html"/>
<xsl:strip-space elements="*"/>
<xsl:template match="food">
<html>
<p><xsl:apply-templates/></p>
</html>
</xsl:template>
<xsl:template match="fruit">
<i><xsl:value-of select="."/></i>
<xsl:value-of select="concat(' ',normalize-space(following-sibling::text()),'. ')"/>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
HTML输出(原始)
橙色很好。猕猴桃很好吃。榴莲不好吃。
HTML输出(浏览器显示)
橙色很好。猕猴桃很好吃。榴莲不好吃。
您输入的XML看起来不好,因为中间的文本似乎不属于水果节点Hi yog,是的,文本isGood和isBad不在水果节点内。它在食物节点内。