Я получил следующий XML:ключ XSL не проходя через переменные
<section>
<templateId root="2.16.840.1.113883.10.20.22.2.4" />
<text>
<list listType="ordered">
<item>9/18/2013 - Weight - 125 lbs</item>
<item>9/18/2013 - Blood Pressure - 120/80 mm Hg</item>
<item>9/18/2013 - BMI - 19 98</item>
</list>
</text>
</section>
Мне нужно, чтобы иметь выход HTML появляются в следующем виде:
<table>
<tr>
<td>9/18/2013</td>
<td>Blood Pressure - 120/80</td>
<td>Weight - 125lbs</td>
<td>BMI - 19</td>
</tr>
</table>
Я следующий ключ настройки в моем файле xsl:
<xsl:key name="vs_times" match="//hl7:section[hl7:templateId/@root='2.16.840.1.113883.10.20.22.2.4']/hl7:text/hl7:list/hl7:item" use="substring-before(., ' - ')"/>
Это чтобы получить дату. В моем xml МОЖЕТ быть более одного набора дат (но не более двух), а второй параметр даты будет другой строкой в приведенном выше примере таблицы.
Это моя XSL информация шаблона для вывода:
<xsl:template match="hl7:section[hl7:templateId/@root='2.16.840.1.113883.10.20.22.2.4']">
<div style="padding: 5px; border-top: 1px solid #000000;">
<table border="0" cellspacing="0" cellpadding="1" width="100%">
<xsl:for-each select="hl7:text/hl7:list/hl7:item[generate-id(.)=generate-id(key('vs_times', substring-before(., ' - ')))]">
<tr>
<td style="width: 76px;">
<xsl:value-of select="substring-before(., ' - ')" />
</td>
<xsl:variable name="values" select="key('vs_times', substring-after(., ' - '))"/>
<td style="width: 180px; padding-left: 3px;">
<xsl:choose>
<xsl:when test="substring-before($values, ' - ') = 'Blood Pressure'">
<span style="font-weight: bold;">Blood Pressure: </span>
<xsl:value-of select="substring-after($values, ' - ')"/>
</xsl:when>
<xsl:otherwise>
 
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
(это только фрагмент, если я могу получить сот один стола, чтобы показать для кровяного давления, то я могу дублировать для. другие элементы списка). Проблема, с которой я сталкиваюсь, заключается в том, что дата появляется без проблем. Однако следующая ячейка таблицы не отображается. Я не знаю, ссылаюсь ли я на свой ключ, или если я ссылаюсь на значение, чтобы показать неправильное.
Благодаря
Единственная проблема со вторым шаблоном заключается в том, что форматирование должно быть различным для каждого элемента в списке. Я изучил это, но было бы больше выбрать/когда во втором шаблоне было просто проще для меня сделать это в первом. Я могу сделать попытку с этим, хотя. – jjasper0729
@ jjasper0729 Существует почти никогда не веская причина использовать 'выбирать/когда' вместо шаблонов, особенно в такой ситуации. Если вы хотите открыть отдельный вопрос о том, как правильно форматировать в элегантной манере, я был бы более чем счастлив помочь. – JLRishe
Думаю, я могу открыть вторую. Это отлично работает, но мне нужны элементы в определенном порядке, которые могут отличаться от порядка, в котором они выполняются (например, xml имеет вес, затем артериальное давление, затем bmi, но выход должен быть bp, weight, bmi) , Кроме того, если нет ни одного из них, в нем должно быть пустое пространство, которое должно быть записано на выходе – jjasper0729