返回

当属性值匹配时,如何使用来自两个 xml 文件的信息制作 xsl?

发布时间:2022-07-08 07:38:58 277
# html

我有两个 xml 文件,分别命名为 1.xml 和 2.xml。'1.xml' 包含两个元素,aa 和 bb。'bb' 具有三个属性:日期、编号和类别。

'2.xml'有五个元素,cc、dd>ee、ff和gg。其中两个各有一个属性:“dd”(id)和“ff”(类)。

我想制作一个 xsl,它使用“1.xml”中的日期属性值来查找“2xml”中具有相应属性值的 id 元素。

'1.xml': 

<aa>

<bb date="31.12.2022" num="prs1" class="alt_3"></bb>

<bb date="07.01.2023" num="prs2" class="alt_2"></bb>

</aa>

这是另一个

'2.xml'

<cc>

<dd id="prs1">

    <ee>steak</ee>

    <ff>

        <gg class="alt_1">carrot cake</gg>

        <gg class="alt_2">chocolate cake</gg>

        <gg class="alt_3">cream cake</gg>

    </ff>

</dd>

<dd id="prs2">

    <ee>chicken</ee>        

    <ff>

        <gg class="alt_1">Swiss roll</gg>

        <gg class="alt_2">Napoleon cake</gg>

        <gg class="alt_3">marzipan cake</gg>            

    </ff>

</dd>    

</cc>

这就是我想要得到的:

    <table>

        <tr>

            <td>31.12.2022</td>

            <td>steak</td>

            <td>cream cake</td>

        </tr>

        <tr>

            <td>07.01.2023</td>

            <td>chicken</td>

            <td>Napoleon cake</td>

        </tr>

    </table>

这是我到目前为止所得到的:

<body>

  <table>

     <tr>

        <td>31.12.2022</td>

        <td></td>

     </tr>

     <tr>

        <td>07.01.2023</td>

        <td></td>

     </tr>

  </table>

<xsl:template match="aa">

    <html>

        <body>

            <table>

                <xsl:for-each select="bb">

                <tr>

                    <td><xsl:value-of select="@date"/></td>

                    <td><xsl:variable name="bbnum" select="@num"/>

                    <xsl:variable name="bbid" select="document('2.xml')/cc[@id = current()/dd/@id]/*"/> 

                    <xsl:if test="$bbnum!=$bbid">     

                        <xsl:value-of select="ee"/>

                    </xsl:if> </td>

                    <td></td>

                </tr>

                </xsl:for-each>

            </table>        

        </body>

    </html>

</xsl:template>

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像