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

#xml #xls #hl7 #ccr

#xml #xls #hl7 #ccr

Вопрос:

Я анализирую XML-файл, подобный:

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

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

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

Комментарии:

1. Вы делаете это в ячейках электронной таблицы или в VBA? В любом случае просто проверьте, является ли значение < минимальным значением или значением> максимальным значением.

2. Нет, это в файлах raw .xml и .xls. (Нет электронной таблицы или VBA.)

Ответ №1:

 <?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 amp;< $low">
            <output>below</output>
        </xsl:when>
        <xsl:when test="$value amp;> $high">
            <output>above</output>
        </xsl:when>
        <xsl:otherwise>
            <output>within</output>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

</xsl:stylesheet>
  

Обратите внимание, что имя элемента «xml» зарезервировано по стандарту XML 1.0, поэтому, вероятно, будет хорошей идеей избежать этого.

Комментарии:

1. Спасибо за помощь! Я должен вам 5 американских долларов. Дайте мне знать, если вы ищете работу.