删除前三个&使用XSL的最后四个XML字母

时间:2011-06-23 22:13:01

标签: xml string xslt

如何使用XSL删除(或排除)“admissionDescription”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>

1 个答案:

答案 0 :(得分:3)

您可以使用XPath函数substringstring-length。这是一个简单的参考http://www.w3schools.com/xpath/xpath_functions.asp#string

<强>更新

您不需要fn前缀。这是一个例子

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

鉴于此测试输入

<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>