2011-06-23 47 views
1

如何使用XSL刪除(或排除)「admissionDescription」XML字符串的前三個字母和後四個字母?使用XSL刪除XML的前三個和後四個字母

這裏是我的pageXML和代碼:

<xsl:if test="cost | admissionDescription"> 
<dt>Admission:</dt> 
<dd> 
<xsl:if test="cost"><xsl:value-of select="cost"/><br/></xsl:if> 
<xsl:if test="admissionDescription"><xsl:value-of select="admissionDescription" disable-output-escaping="yes"/></xsl:if> 
</dd> 
</xsl:if> 

回答

3

您可以使用XPath函數substringstring-length。下面是一個簡單的參考http://www.w3schools.com/xpath/xpath_functions.asp#string

更新

你不需要fn前綴。這是考慮到這種測試輸入

<xml> 
    <cost>5</cost> 
    <admissionDescription>123sometext4321</admissionDescription> 
</xml> 

運用你的XSL

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > 
<xsl:template match="xml"> 
    <xsl:copy> 
    <xsl:if test="cost | admissionDescription"> 
     <dt>Admission:</dt> 
     <dd> 
     <xsl:if test="cost"><xsl:value-of select="cost"/><br/></xsl:if> 
     <xsl:if test="admissionDescription"><xsl:value-of select="substring(admissionDescription,4,string-length(admissionDescription)-7)" disable-output-escaping="yes"/></xsl:if> 
     </dd> 
    </xsl:if> 
    </xsl:copy> 
</xsl:template> 
</xsl:stylesheet> 

你得到所需的輸出

<xml> 
    <dt>Admission:</dt> 
    <dd>5 
    <br/>sometext</dd> 
</xml> 
+0

我似乎無法得到一個例子

substring(admissionDescription,4,string-length(admissionDescription)-7) 

這工作。任何想法這個代碼有什麼問題,以及如何排除最後四個字母:' ' – Ryan

+0

@Ryan - 我已經更新了一個例子。 – cordsen

+0

非常感謝你 - 完美的作品! – Ryan

相關問題