2011-05-31 23 views
5

estoy analizar un archivo .xml como:.xsl, toman un valor de rango como "130-210", y determinar si "86" o "458" se encuentra dentro del rango numérico

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

En una hoja de estilo .xls, necesito mostrar un valor que indique si el valor está dentro del rango normal, debajo o encima de él.

Este es un problema muy común cuando se muestran los resultados de lectura humana del documento CCR (Continuity of Care Record in Healthcare HL7 mensajería) xml.

+0

¿Estás haciendo esto dentro de las celdas de la hoja de cálculo o dentro de VBA? En cualquier caso, simplemente verifique si Value MaxValue. –

+0

No, esto está en archivos raw .xml y .xls. (Sin hoja de cálculo o VBA). – MikeN

Respuesta

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> 

Tenga en cuenta que el nombre elemento "xml" está reservado por XML 1.0 standard, lo que es probablemente una buena idea para evitarlo.

+1

¡Gracias por la ayuda! Te debo $ 5 estadounidense. Avíseme si está buscando trabajo. – MikeN

Cuestiones relacionadas