Используя XSLT, я пытаюсь вырезать все теги внутри определенного узла, сохраняя пробелы между этими тегами.XSLT: метки полосы, сохранить пробелы
Я дал XML, как это:
<text>
<s id="s2"> The patient is a <p id="p22">56-year-old</p> <p id="p28">Caucasian</p> <p id="p30">male</p></s></text>
Я хотел бы, чтобы вырезать все в < сек > и < р > теги, так что я просто английское предложение в < текста > узел.
Я пробовал следующий шаблон, который успешно удаляет все теги, но также удаляет пробелы между тегами <p>, если там нет других символов. Например, я бы в конечном итоге с: «Пациент является 56-летний oldCaucasianmale»
<xsl:template name="strip-tags">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="contains($text, '<')">
<xsl:value-of select="substring-before($text, '<')"/>
<xsl:call-template name="strip-tags">
<xsl:with-param name="text" select="substring-after($text, '>')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Любые мысли? Благодаря!
А, хорошо знать! Но даже при этом удаляются пробелы между тэгами. Если я заменяю пробелы в XML символами без пробела, эти символы сохраняются. – embden
@embden У вас есть '' в вашей таблице стилей? –
Возможно, вы используете синтаксический анализатор Microsoft XML, который по умолчанию разбивает пробелы. Как только он исчезнет, XSLT ничего не может сделать, чтобы его сохранить. –