Удалить первые три и последние четыре буквы XML с помощью XSL - PullRequest
1 голос
/ 24 июня 2011

Как я могу удалить (или исключить) первые три буквы и последние четыре буквы строки XML "admissionDescription", используя XSL?

Вот моя страница , XML и код:

<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 Ответ

3 голосов
/ 24 июня 2011

Вы можете использовать функции XPath substring и string-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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...