如何为JavaScript var分配一些XML值?

时间:2017-06-29 00:03:46

标签: xml xslt

我想将我的xml中的值分配给javascript中的变量...这是否有可能?我的想法是在生成的表的最后一列中显示链接。这是我的方法,但我不确定它会起作用。如果有人有更好的想法请分享:D

<xsl:template match="/">
    <html>
        <head>
        </head>
        <body>
            <script>
                var ahref = '<xsl:value-of select="url"/>'; <----- How to achieve this???
            </script>
            <h2>My Catalog</h2>
            <table border="1">
                <tr bgcolor="#9ACD32">
                    <th>Album</th>
                    <th>Artist</th>
                    <th>Link</th>
                </tr>
                <xsl:for-each select="catalog/album">
                    <tr>
                        <td><xsl:value-of select="title"/></td>
                        <td><xsl:value-of select="artist"/></td>
                        <td><a href="" id="ahref" style="padding:0px 10px 0px 10px;">link</a></td>
                    </tr>
                </xsl:for-each>
            </table>
            <script>
                document.getElementById("ahref").href = ahref;
            </script>
       </body>
   </html>
</xsl:template>

这是我的xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="catalog.xsl"?>

<catalog>
    <album>
        <title>Exodus</title>
        <artist>Bob Marley</artist>
        <country>Jamaica</country>
        <price>19,99</price>
        <url>https://www.w3schools.com/tags/tag_a.asp</url>
    </album>
    <album>
        <title>Black Album</title>
        <artist>Metallica</artist>
        <country>USA</country>
        <price>20,00</price>
        <url>https://www.artstation.com/artist/lanyuan</url>
    </album>
    <album>
        <title>Nevermind</title>
        <artist>Nirvana</artist>
        <country>USA</country>
        <price>22,00</price>
        <url>http://fontawesome.io/icon/external-link</url>
    </album>
</catalog>

1 个答案:

答案 0 :(得分:0)

我不明白为什么你需要Javascript,如果你改变了

            <xsl:for-each select="catalog/album">
                <tr>
                    <td><xsl:value-of select="title"/></td>
                    <td><xsl:value-of select="artist"/></td>
                    <td><a href="" id="ahref" style="padding:0px 10px 0px 10px;">link</a></td>
                </tr>
            </xsl:for-each>

            <xsl:for-each select="catalog/album">
                <tr>
                    <td><xsl:value-of select="title"/></td>
                    <td><xsl:value-of select="artist"/></td>
                    <td><a href="{url}" style="padding:0px 10px 0px 10px;"><xsl:value-of select="url"/></a></td>
                </tr>
            </xsl:for-each>

然后,XML文档的XSLT转换产生的HTML将在每行的第三个表格单元格中包含一个链接。