2015-05-29 98 views
0

我有XML文档如下,XSLT:XML标签中删除某些文字

<footnote> 
    <p type="Footnote Text"> 
     <link ref="http://www.apple.com/accessibility/iphone/hearing.html"> 
     <c type="Hyperlink">http:.apple.com/accessibility/iphone/hearing.html 
     </c> 
     </link> 
    </s> 
    </p> 
</footnote> 

什么,我需要做的是从XSLT我需要标签中去掉该URL的子串。

实施例:

原始XML文档这样的,

<c type="Hyperlink">http:www.apple.com/accessibility/iphone/hearing.html 
</c> 

和我需要转换如下:

<c type="Hyperlink">www.apple.com </c> 

我搜索XSLT inbuild功能删除在某一子字符串,但我找不到这样的功能。

你可以给我任何建议如何做到这一点?

回答

1

c元件可被转换以这样的方式

<xsl:template match="c"> 
    <xsl:copy> 
     <xsl:copy-of select="@*"/> 
     <xsl:variable name="sa" select="substring-after(.,':')"/> 
     <xsl:variable name="sb" select="substring-before($sa,'/')"/> 
     <xsl:value-of select="$sb"/> 
    </xsl:copy> 
</xsl:template> 

请注意,你的榜样是不是一个有效的XML文件,有与关闭标签的问题。