В .xsl возьмите значение диапазона, например «130-210», и определите, находится ли «86» или «458» в этом числовом диапазоне - PullRequest
5 голосов
/ 31 мая 2011

Я анализирую файл .xml, например:

<xml>
  <normalRange>100-200</normalRange>
  <value>83</value>
</xml>

В таблице стилей .xls мне нужно отобразить значение, указывающее, находится ли значение в пределах normalRange, под ним или над ним.

Это очень распространенная проблема при отображении понятных для человека результатов из XML-документа CCR (Непрерывность медицинской помощи в системе обмена сообщениями Healthcare HL7).

1 Ответ

7 голосов
/ 31 мая 2011
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
    <xsl:variable name="value" select="/xml/value"/>
    <xsl:variable name="low" select="substring-before(/xml/normalRange, '-')"/>
    <xsl:variable name="high" select="substring-after(/xml/normalRange, '-')"/>

    <xsl:choose>
        <xsl:when test="$value &lt; $low">
            <output>below</output>
        </xsl:when>
        <xsl:when test="$value &gt; $high">
            <output>above</output>
        </xsl:when>
        <xsl:otherwise>
            <output>within</output>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

</xsl:stylesheet>

Обратите внимание, что имя элемента "xml" зарезервировано стандартом XML 1.0 , поэтому, вероятно, стоит избегать его.

...