1

我们需要将 xml 消息转换为更易读的格式,所以我尝试添加一些 XSL。我很难按照我想要的方式列出所有内容。

我对 XSL 很陌生,所以会得到一些帮助。

这是 XML 文件的一部分:

<biotronik-ieee11073-export format-version="3.0" creator="BioProgrammerConverter" creator-version="3.1">
<dataset>
    <section name="MDC">
        <section name="ATTR">
            <section name="PT">
                <value name="SEX" type="String">0</value>
            </section>
        </section>
        <section name="IDC">
            <section name="PG">
                <value name="TYPE" type="MDC_IDC_ENUM_PG_TYPE">IPG</value>
                <value name="MODEL" type="String">Evia DR-T</value>
                <value name="SERIAL" type="String">xxxxxxxx</value>
                <value name="MFG" type="MDC_IDC_ENUM_MFG">BIO</value>
                <value name="IMPLANT_DT" type="DateTime">20091126</value>
            </section>
            <section name="LEAD">
                <value name="MODEL" type="String">4524</value>
                <value name="MFG" type="MDC_IDC_ENUM_MFG">MDT</value>
                <value name="POLARITY_TYPE" type="MDC_IDC_ENUM_LEAD_POLARITY_TYPE">BI</value>
                <value name="LOCATION" type="MDC_IDC_ENUM_LEAD_LOCATION_CHAMBER">RA</value>
                <value name="CONNECTION_STATUS" type="MDC_IDC_ENUM_LEAD_STATUS">Connected</value>
            </section>
            <section name="LEAD">
                <value name="MODEL" type="String">T 44 F</value>
                <value name="MFG" type="MDC_IDC_ENUM_MFG">ELA</value>
                <value name="POLARITY_TYPE" type="MDC_IDC_ENUM_LEAD_POLARITY_TYPE">BI</value>
                <value name="LOCATION" type="MDC_IDC_ENUM_LEAD_LOCATION_CHAMBER">RV</value>
                <value name="CONNECTION_STATUS" type="MDC_IDC_ENUM_LEAD_STATUS">Connected</value>
            </section>

以某种方式,我想显示 node = IDC 下的所有标签

我尝试使用以下 XSL:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Biotronics Results</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Test</th>
<th>Value</th>
</tr>
<xsl:for-each select="/biotronik-ieee11073-export/dataset/section[@name='MDC']/section[@name='IDC']">
<xsl:for-each select="section">
<xsl:for-each select="value">
<tr>
<td><xsl:value-of select="value"/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

帮助将不胜感激。谢谢

4

1 回答 1

0

你想要

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
     <xsl:copy-of select="//section[@name='IDC']//value"/>
 </xsl:template>
</xsl:stylesheet>

当此转换应用于提供的 XML 文档时:

<biotronik-ieee11073-export format-version="3.0" creator="BioProgrammerConverter" creator-version="3.1">
    <dataset>
        <section name="MDC">
            <section name="ATTR">
                <section name="PT">
                    <value name="SEX" type="String">0</value>
                </section>
            </section>
            <section name="IDC">
                <section name="PG">
                    <value name="TYPE" type="MDC_IDC_ENUM_PG_TYPE">IPG</value>
                    <value name="MODEL" type="String">Evia DR-T</value>
                    <value name="SERIAL" type="String">xxxxxxxx</value>
                    <value name="MFG" type="MDC_IDC_ENUM_MFG">BIO</value>
                    <value name="IMPLANT_DT" type="DateTime">20091126</value>
                </section>
                <section name="LEAD">
                    <value name="MODEL" type="String">4524</value>
                    <value name="MFG" type="MDC_IDC_ENUM_MFG">MDT</value>
                    <value name="POLARITY_TYPE" type="MDC_IDC_ENUM_LEAD_POLARITY_TYPE">BI</value>
                    <value name="LOCATION" type="MDC_IDC_ENUM_LEAD_LOCATION_CHAMBER">RA</value>
                    <value name="CONNECTION_STATUS" type="MDC_IDC_ENUM_LEAD_STATUS">Connected</value>
                </section>
                <section name="LEAD">
                    <value name="MODEL" type="String">T 44 F</value>
                    <value name="MFG" type="MDC_IDC_ENUM_MFG">ELA</value>
                    <value name="POLARITY_TYPE" type="MDC_IDC_ENUM_LEAD_POLARITY_TYPE">BI</value>
                    <value name="LOCATION" type="MDC_IDC_ENUM_LEAD_LOCATION_CHAMBER">RV</value>
                    <value name="CONNECTION_STATUS" type="MDC_IDC_ENUM_LEAD_STATUS">Connected</value>
                </section>
            </section>
        </section>
    </dataset>
</biotronik-ieee11073-export>

产生了想要的正确结果:

<value name="TYPE" type="MDC_IDC_ENUM_PG_TYPE">IPG</value>
<value name="MODEL" type="String">Evia DR-T</value>
<value name="SERIAL" type="String">xxxxxxxx</value>
<value name="MFG" type="MDC_IDC_ENUM_MFG">BIO</value>
<value name="IMPLANT_DT" type="DateTime">20091126</value>
<value name="MODEL" type="String">4524</value>
<value name="MFG" type="MDC_IDC_ENUM_MFG">MDT</value>
<value name="POLARITY_TYPE" type="MDC_IDC_ENUM_LEAD_POLARITY_TYPE">BI</value>
<value name="LOCATION" type="MDC_IDC_ENUM_LEAD_LOCATION_CHAMBER">RA</value>
<value name="CONNECTION_STATUS" type="MDC_IDC_ENUM_LEAD_STATUS">Connected</value>
<value name="MODEL" type="String">T 44 F</value>
<value name="MFG" type="MDC_IDC_ENUM_MFG">ELA</value>
<value name="POLARITY_TYPE" type="MDC_IDC_ENUM_LEAD_POLARITY_TYPE">BI</value>
<value name="LOCATION" type="MDC_IDC_ENUM_LEAD_LOCATION_CHAMBER">RV</value>
<value name="CONNECTION_STATUS" type="MDC_IDC_ENUM_LEAD_STATUS">Connected</value>
于 2012-11-09T13:46:21.083 回答