XSLT 用于根据条件 'if node != null 在 xml 中选择节点



我的xml文件的结构如下 -

<products>
 <product>
   <ptype>fruits</ptype>
   <varieties>
     <variety>
       <id>a</id>
       <cost>100</cost>
     </variety>
     <subvarieties>
       <variety>
         <id>b</id>
         <cost>100</cost>
       </variety>
       <subvarieties>
         <variety>
           <id>c</id>
           <cost>100</cost>
         </variety> 
       </subvarieties>
       </variety>
     </subvarieties>
     <variety>
       <id>d</id>
       <cost>75</cost>
     </variety>
   </varieties>
 </product>
 <product>
   <type>vegetables</type>
   <varieties>
     <variety>
       <id>e</id>
       <cost>50</cost>
     </variety>
   </varieties>
 </product>

我需要根据节点<variety>将上述XML重组为HTML表格格式。这意味着无论XML中节点<variety>的位置如何,我都需要选择该节点下的元素。有时该节点可能是空的,即节点下没有元素。所需的XML如下 -

<html>
<body>
<table border="1">
     <tr>
        <td>a</td>
        <td>100</td>
     </tr>
     <tr>
        <td>b</td>
        <td>100</td>
     </tr>
     <tr>
        <td>c</td>
        <td>100</td>
     </tr>
     <tr>
        <td>d</td>
        <td>75</td>
     </tr>
     <tr>
        <td>e</td>
        <td>50</td>
     </tr>
</table>
</body>
</html>

尝试XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
    <xsl:for-each select="/products">
        <xsl:for-each select="//variety">
            <tr>
                <td><xsl:value-of select="." /></td>
            </tr>
        </xsl:for-each>
    </xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

我正在为上述XSLT获得空的响应。任何帮助都是很棒的。

对我有用:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
    <xsl:for-each select="/products">
        <xsl:for-each select=".//variety">
            <tr>
                <td><xsl:value-of select="id" /></td>
                <td><xsl:value-of select="cost" /></td>
            </tr>
        </xsl:for-each>
    </xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

小提琴

相关内容

  • 没有找到相关文章

最新更新