- edited in response to comments *
Hello,
我是欧洲空间法中心的一个口号,需要一些帮助。 我试图与XSLT 1.0(用于这一应用的XSLT 2.0)。
这里的例子就是xml
<entry>
<item>
<name>Widget 2</name>
<rank>2</rank>
<types>
<type>Wood</type>
<type>Fixed</type>
<type>Old</type>
</types>
</item>
<item>
<name>Widget 1</name>
<rank>2</rank>
<types>
<type>Metal</type>
<type>Broken</type>
<type>Old</type>
</types>
</item>
<item>
<name>Widget 3</name>
<rank>1</rank>
<types>
<type>Metal</type>
<type>New</type>
</types>
</item>
</entry>
现在,我想做的是产出html,在产出中,我获得了以<代码>和t;类型和“;
<p class="nospace"><font color="#800000">
<b>Rank 1</b></font></p>
<li id="mylist"><b>Widget 3</b></li>
<br>
<p class="nospace"><font color="#800000">
<b>Rank 2</b></font></p>
<li id="mylist"><b>Widget 1</b></li>
<br>
用户选择类型 产出原由
<p class="nospace"><font color="#800000">
<b>Rank 2</b></font></p>
<li id="mylist"><b>Widget 1</b></li>
<li id="mylist"><b>Widget 2</b></li>
<br>
我可以轻而易举地集中使用排名上的钥匙,但试图这样做并不奏效。 这里是我尝试的Xslt样本:
<xsl:param name="typeParam"/>
<xsl:key name="byRank" use="rank" match="item"/>
<xsl:for-each select="item[count(.|key( byRank ,rank)[1])=1]">
<xsl:sort data-type="number" select="rank"/>
<xsl:for-each select="key( byRank ,rank)">
<xsl:sort select="name"/>
<xsl:if test="count(rank)>0">
<p class="nospace"><font color="#800000"><b>Rank<xsl:value-of select="rank"/></b></font></p>
<xsl:for-each select="types[types=$typeParam]">
<li id="mylist"><b><xsl:value-of select="../name"/></b></li>
</xsl:for-each>
<br/>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
我从中得出的结果是,我确实获得了我所希望的轮椅子,但也显示了所有各级价值观。 我只想把它限制在类巴拉姆具体规定的级别上。
我试图将每份声明移至法典的较早之处,并修改如果要选择哪一种类型的Param,但两者都没有奏效的话。 我也试图将我的关键与级别和类型混为一谈,但似乎没有做任何工作(只有用美元打字的类型是首批类型儿童的情况下才能工作)。
增 编
垃圾