2011-05-31 51 views
5

內我解析.xml文件等:在的.xsl,取像「130-210」的範圍內的值,並確定是否「86」或「458」是數值範圍

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

在.xls樣式表中,我需要顯示一個值,該值指示該值是否在normalRange內,其下方或上方。

從CCR(保健HL7消息傳遞中的護理記錄的連續性)xml文檔顯示人類可讀結果時,這是一個非常常見的問題。

+0

你是在電子表格單元格內還是在VBA內完成這項工作?在任何一種情況下,只需檢查值 MaxValue。 – 2011-05-31 03:18:41

+0

不,這是原始的.xml和.xls文件。 (沒有電子表格或VBA。) – MikeN 2011-05-31 03:26:29

回答

7
<?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 standard保留,因此避免它可能是個好主意。

+1

感謝您的幫助!我欠你5美元。讓我知道你是否在找工作。 – MikeN 2011-05-31 03:40:19