Html 将值从选择框传递到if语句以更改XSLT中的内容

Html 将值从选择框传递到if语句以更改XSLT中的内容,html,xml,xslt,if-statement,foreach,Html,Xml,Xslt,If Statement,Foreach,我不知道该怎么做,但我需要做的是,当在XSL顶部的选择框中选择一个新选项时,显示的EP将通过更改XML下一步IF测试所需的@id值来更改。我想我也许可以通过使用选择框的值来实现这一点 这是我的XSL <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:varia

我不知道该怎么做,但我需要做的是,当在XSL顶部的选择框中选择一个新选项时,显示的EP将通过更改XML下一步IF测试所需的@id值来更改。我想我也许可以通过使用选择框的值来实现这一点

这是我的XSL

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="imagefolder" select="'xml/images/'" />
<xsl:template match="/">

<html>
<body>
<xsl:element name="select">
<xsl:for-each select="dalehoward/ep"> 
<xsl:element name="option">
<xsl:attribute name="value"><xsl:value-of select="position()"/></xsl:attribute>
<xsl:value-of select="name"/>
</xsl:element>
</xsl:for-each> 
</xsl:element> 
<br /><br />
<table border="1px"  bordercolor="#FFFFFF" width="100%">
  <tr bgcolor="#cccccc">
    <th style="text-align:left">Title</th>
    <th style="text-align:left">Year</th>
    <th style="text-align:left">Label</th>
    <th style="text-align:left">Artwork</th>
    <th style="text-align:left">Tracks / Player</th>
  </tr>
  <xsl:for-each select="dalehoward/ep">
  <xsl:sort select="year" order="ascending" data-type="number"/>
  <xsl:if test="@id = 1">
  <tr>
    <td><xsl:value-of select="name"/></td>
    <td><xsl:value-of select="year"/></td>
    <td><xsl:value-of select="label"/></td>
    <td><img width="150px" height="150px"><xsl:attribute name="src">
    <xsl:copy-of select="$imagefolder"/>
    <xsl:value-of select="image"/>
    </xsl:attribute></img></td>
    <td><xsl:for-each select="track">
    <xsl:if test="../@id = 1">
    <xsl:value-of select="@number"/>.
    <xsl:value-of select="tname"/><br />
    <xsl:value-of select="length"/> <br /><br />

    <xsl:element name="iframe">
    <xsl:attribute name="class">cf</xsl:attribute>  
    <xsl:attribute name="width">440</xsl:attribute>
    <xsl:attribute name="height">260</xsl:attribute>
    <xsl:attribute name="src">http://www.youtube.com/embed/<xsl:value-of select="ytubelink"/></xsl:attribute>
    <xsl:attribute name="frameborder">0</xsl:attribute>
    <xsl:comment/>
</xsl:element> <br /><br />

        </xsl:if>
        </xsl:for-each></td>
  </tr>
  </xsl:if>
  </xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>



标题 年 标签 艺术品 曲目/播放器 .


查阅 440 260 http://www.youtube.com/embed/ 0

以下是我的XML:

<dalehoward>
<bio>
<profilepic>profilepic.jpg</profilepic>
<dob>16/10/1987</dob>
<pob>Liverpool</pob>
<about>
English Deep House producer Dale Howard first burst onto the scene in 2009 with his debut EP on Neurotraxx Deluxe Gotta Be Deep, which topped the Beatport Deep House chart reaching the Number 1 spot. Since then he has been making waves with an array of releases on world renowned labels like Fear Of Flying, Loco Records and many others. Aswell as having countless top 20's and 50's Dale has also reached Number 2 and Number 3 on the Beatport Deep House Chart with his tracks 'Dropout' and 4 Hour Bang, which also stayed in the Top 10 for 9 weeks. In 2010 Dale launched his own imprint Static Audio, which is a hotbed for established and up and coming Deep and Tech House producers alike and features some of the biggest Deep House artists in the world. With his productions having support from artists like Richie Hawtin, Nic Fancuilli, Mark Knight, Florian Meindl, Funkagenda, Karol XVII and MB Valence, Ekkohaus, Robert Owens, Filthy Rich, Ronan Portela, Soul Miniority and a load more, Dale continues to make Top notch Deep House and has forthcoming releases on even more of the worlds finest House labels.
</about>
</bio>
<ep id="1">
    <name>Letters EP</name>
    <year>2012</year>
    <label>Static Audio</label>
    <image>letters.jpg</image>

        <track number="1" beatportrank="0">
            <tname>Letters</tname>
            <length>6.35</length>
            <ytubelink>2H2XDQqvbpc</ytubelink>
        </track>
        <track number="2" beatportrank="0">
            <tname>Later</tname>
            <length>7.56</length>
            <ytubelink>w61RrgBPahk</ytubelink>
        </track>
            <track number="3" beatportrank="0">
            <tname>'89 Flava</tname>
            <length>7:38</length>
            <ytubelink>Mgarl-FlVhQ</ytubelink>
        </track>
        <track number="4" beatportrank="0">
            <tname>Safe Presentation</tname>
            <length>7.55</length>
            <ytubelink>d_U38G9AwHk</ytubelink>
        </track>
</ep>



<ep id="2">
    <name>Inner City EP</name>
    <year>2012</year>
    <label>Lost My Dog</label>
    <image>innercity.jpg</image>

    <track number="1" beatportrank="0">
            <tname>C'Mon</tname>
            <length>7.15</length>
            <ytubelink>Y9ExPTumGg4</ytubelink>
        </track>
        <track number="2" beatportrank="0">
            <tname>Koppabird</tname>
            <length>6.27</length>
            <ytubelink>RrSgPq9gw9E</ytubelink>
        </track>
        <track number="3" beatportrank="0">
            <tname>Inner City</tname>
            <length>8:50</length>
            <ytubelink>zuABxrp5A2U</ytubelink>
        </track>
        <track number="4" beatportrank="0">
            <tname>You Can</tname>
            <length>8:16</length>
            <ytubelink>oxFynevJf6Y</ytubelink>
        </track>
</ep>
<ep id="3">
    <name>Some Other Guy EP</name>
    <year>2012</year>
    <label>OFF</label>
    <image>someotherguy.jpg</image>

    <track number="1" beatportrank="8">
            <tname>Some Other Guy</tname>
            <length>8:04</length>
            <ytubelink>xY9Xr5YVDmY</ytubelink>
        </track>
        <track number="2" beatportrank="0">
            <tname>No Need</tname>
            <length>8:04</length>
            <ytubelink>q9Qi3NziI98</ytubelink>
        </track>
        <track number="3" beatportrank="7">
            <tname>Trickster</tname>
            <length>7:26</length>
            <ytubelink>WOEMRPmNqF8</ytubelink>
        </track>
        <track number="4" beatportrank="0">
            <tname>District</tname>
            <length>8:34</length>
            <ytubelink>Dbi17vfja6s</ytubelink>
        </track>
</ep>
</dalehoward>

profilepic.jpg
16/10/1987
利物浦
英国深屋制作人戴尔·霍华德于2009年首次亮相,他在《Neurotaxx Deluxe Total Be Deep》上的首张EP,在Beatport深屋排行榜上名列第一。从那时起,他就在世界著名的唱片公司如《飞行恐惧》、《Loco唱片》和许多其他唱片公司的一系列发行中掀起了波澜。除了拥有数不清的前20名和前50名之外,戴尔还凭借其曲目《辍学》和《4小时爆炸》在Beatport Deep House排行榜上排名第2和第3,这两首歌也连续9周位居前10名。2010年,Dale推出了自己的imprint Static Audio,这是老牌和后起之秀Deep和Tech House制作人的温床,并以世界上一些最大的Deep House艺术家为特色。他的作品得到了Richie Hawtin、Nic Fancuilli、Mark Knight、Florian Meindl、Funkagenda、Karol XVII和MB Valence、Ekkohaus、Robert Owens、Dirthy Rich、Ronan Portela、Soul Miniority等艺术家的支持,戴尔继续制作顶级的深屋,并即将发布更多世界上最好的房屋标签。
字母EP
2012
静态音频
letters.jpg
信件
6.35
2H2xDqVbpc
后来
7.56
W61RRK
89弗拉瓦
7:38
Mgarl FlVhQ
安全演示
7.55
d_u38g9awk
内城EP
2012
我的狗丢了
innercity.jpg
拜托
7.15
Y9ExPTumGg4
科帕鸟
6.27
RrSgPq9gw9E
市中心
8:50
zuABxrp5A2U
你可以
8:16
oxFynevJf6Y
其他人
2012
关
其他人
其他人
8:04
xY9Xr5YVDmY
不需要
8:04
Q9QI3NZi98
骗子
7:26
WOEMRPmNqF8
地区
8:34
Dbi17vfja6s

在上面的示例中,不清楚您想做什么,但我认为您正在寻找
position()
函数。它返回当前节点在当前节点集中的位置(第一个节点的位置为1)

你可以像这样使用它-

<xsl:for-each select="dalehoward/ep">

<option value="{position()}"></option>

<!-- OR -->

<xsl:value-of select="position()"/>

<!-- OR -->

<xsl:if test="position() &gt; 5">
<!-- DO SOMETHING -->
</xsl:if>

</xsl:for-each>


您的正确选择是“我想要我想要”。一旦我将position()存储为选项框的值,以后如何在另一个循环中使用相同的值?非常感谢您的帮助:)您可以将position的值存储在xsl:变量中,然后在下一个循环中使用它。你能用输入XML和你想要的输出更新这个问题吗?嘿,抱歉,如果是模糊的,我现在已经更新了这个问题,再次感谢