如何与堆栈溢出开发人员

时间:2016-12-07 16:28:48

标签: xml xslt

在使用XSLT解析XML时,我遇到了一个问题 我想在这个论坛上提问。
但我无法共享代码。

this W3schoools example中没有分享按钮。

请您建议我编写演示版的任何编辑并分享我的代码。

我想获得最低价格。

XML

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="abc.xsl"?>

<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <country>UK</country>
        <company>CBS Records</company>
        <price>9.90</price>
        <year>1988</year>
    </cd>
    </catalog>

XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
        <html>
            <body>
                <h2>My CD Collection</h2>
                <table border="1">
                    <tr bgcolor="#9acd32">
                        <th style="text-align:left">Title</th>
                        <th style="text-align:left">Artist</th>
                    </tr>
                    <xsl:for-each select="catalog/cd/title">
                        <tr>
                            <td><xsl:value-of select="text()"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>

</xsl:stylesheet>

1 个答案:

答案 0 :(得分:0)

评论中已经建议了能够处理您的请求的编辑器。

如果您想检索<price>元素的最小值,可以使用以下XSLT代码段:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">        
    <xsl:template match="/catalog">
        <xsl:for-each select="cd"> 
            <xsl:sort select="price" data-type="number" order="ascending"/>
            <xsl:if test="position() = 1">
                <xsl:text>Minimum price: </xsl:text>
                <xsl:value-of select="price/text()" />
                <xsl:text>&#xa;</xsl:text>
            </xsl:if>
        </xsl:for-each>
    </xsl:template>        
</xsl:stylesheet>

输出所有<price>标记值的最小值:

<?xml version="1.0"?>
Minimum price: 9.90