CCD XML ドキュメントを使用しています。次のようなデータが含まれています。
<tr ID="encounter17" >
<td>09/18/2012</td>
<td ID="type41">Office Visit</td>
<td>Family Practice</td>
<td>
<paragraph>REDACTED</paragraph>
</td>
<td />
</tr>
<tr ID="encounter18" styleCode="altRow">
<td>09/17/2012</td>
<td ID="type42">Office Visit</td>
<td>Family Practice</td>
<td>
<paragraph>REDACTED</paragraph>
</td>
<td />
</tr>
「標準」の CCD.xsl を使用して、これを HTML としてレンダリングしようとしています。Derived from HL7 Finland R2 Tyylitiedosto: Tyyli_R2_B3_01.xslt
Updated by Calvin E. Beebe, Mayo Clinic - Rochester Mn.
ID を持つencounter17
要素はレンダリングされますが、ID を持つ要素はencounter18
レンダリングされません。この出力を見るとxsltproc
、XSLT がstyleCode
属性を認識しないために発生しています。のみBold, Italic, Underline
がサポートされます。
この XSLT を変更して、不明な styleCode を許容できるようにするにはどうすればよいですか?
<!-- Stylecode processing
Supports Bold, Underline and Italics display-->
<xsl:template match="//n1:*[@styleCode]">
<xsl:if test="@styleCode='Bold'">
<xsl:element name='b'>
<xsl:apply-templates/>
</xsl:element>
</xsl:if>
<xsl:if test="@styleCode='Italics'">
<xsl:element name='i'>
<xsl:apply-templates/>
</xsl:element>
</xsl:if>
<xsl:if test="@styleCode='Underline'">
<xsl:element name='u'>
<xsl:apply-templates/>
</xsl:element>
</xsl:if>
<xsl:if test="contains(@styleCode,'Bold') and contains(@styleCode,'Italics') and not (contains(@styleCode, 'Underline'))">
<xsl:element name='b'>
<xsl:element name='i'>
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:if>
<xsl:if test="contains(@styleCode,'Bold') and contains(@styleCode,'Underline') and not (contains(@styleCode, 'Italics'))">
<xsl:element name='b'>
<xsl:element name='u'>
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:if>
<xsl:if test="contains(@styleCode,'Italics') and contains(@styleCode,'Underline') and not (contains(@styleCode, 'Bold'))">
<xsl:element name='i'>
<xsl:element name='u'>
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:if>
<xsl:if test="contains(@styleCode,'Italics') and contains(@styleCode,'Underline') and contains(@styleCode, 'Bold')">
<xsl:element name='b'>
<xsl:element name='i'>
<xsl:element name='u'>
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:if>
私はすでに追加しようとしました:
<xsl:if test="not (contains(@styleCode,'Italics')) and not (contains(@styleCode,'Underline')) and not (contains(@styleCode, 'Bold'))">
<xsl:apply-templates/>
</xsl:if>
<tr>
これは要素をレンダリングするだけのように見えますが、タグを扱う XSLT の部分には「落ちません」 。