在python上使用xslt 1.0,我试图在指定顺序时选择几个项目:
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item name='1'>
first
</item>
<item name='2'>
second
</item>
<item name='3'>
third
</item>
</items>
如果我使用一个带有一个大的或在一起列表的for-each,我可以得到我想要的项目,但是只能按照上面xml源文档的原始顺序。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="items/item[@name='2']|items/item[@name='1']">
<p>hi</p>
<xsl:value-of select="." />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这就产生了:
hi
first
hi
second
但我想让它输出:
hi
second
hi
first
我认为使用xsl:apply模板可能是一种方法,但即使是这个简单的示例,我也无法让它工作。XSLT1.0中按特定顺序选择元素的最佳方法是什么?
您可以使用
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="items/item[@name='2' or @name='1']">
<xsl:sort select="@name" data-type="number" order="descending"/>
<p>hi</p>
<xsl:value-of select="."/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
xsltransform演示1
"我认为使用xsl:应用模板可能是最好的方法,但是即使是这个简单的例子我也无法让它工作"
这也是可能的,例如:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates select="items/item[@name='2']"/>
<xsl:apply-templates select="items/item[@name='1']"/>
</body>
</html>
</xsl:template>
<xsl:template match="items/item">
<p>hi</p>
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
xsl转换demo 2
输出:
<html>
<body>
<p>hi</p>
second
<p>hi</p>
first
</body>
</html>
问题内容: 假设我有一个查询“ select * from子句,其中id在(0,2,5,1,3)中”,我实际上希望返回的行以它们在where子句中指定的相同顺序返回。ID的顺序将随查询的不同而改变,并且该顺序没有模式。 我知道可以更改数据模型,创建临时表等。但是请相信我,这些类型的解决方案在我的情况下将行不通。我也无法在应用程序代码中更改结果对象的顺序。 我还知道,不同的数据库引擎对事物的排序方式
问题内容: 我已经搜索了很多,但是找不到任何解决方案。我以这种方式使用Java线程池: 以这种方式,任务以随后的顺序执行(如在队列中)。但是我需要更改“选择下一个任务”策略。所以我想为每个任务分配优先级(不是线程优先级),并执行与这些优先级相对应的任务。因此,当执行者完成另一个任务时,它将选择下一个任务作为具有最高优先级的任务。它描述了常见问题。也许有一种更简单的方法没有说明优先级。它选择上一个添
问题内容: 我对CSS和属性有些困惑。我一直认为,在属性值中指定多个类的顺序具有一定的意义。后一类可以/应该覆盖前一类的定义,但这似乎不起作用。这是一个例子: 我希望第三个示例使用蓝色边框,因为额外指定的边框会覆盖基本边框。 我在ubuntu 9.04上使用FF 3 问题答案: 属性被覆盖的顺序不是由类在属性中定义的顺序决定的,而是由它们在CSS中出现的位置决定的。 在该文本将出现,而不是; 因为
问题内容: 我正在处理SQL Reporting Services报表(在VS.Net 2005中),该报表在矩阵中显示不同数据的数量。这些列对特定集合中的客户数量进行计数。因此,我有几个类似的列:“ 1个雇主”,“ 2-9个雇主”,“ 10-19个雇主”等等。 我的问题是SQL Reporting Services按字母顺序对矩阵中的列进行排序。因此,我最终在“ 1个雇主”列之后但在“ 2-9”
问题内容: 我正在尝试在Java项目上运行Dagger 2和Lombok。当然,龙目岛必须首先运行,但是它的确存在取决于机会。起初,我怀疑我可以通过类路径中库jar的相应位置来指定顺序,但是该顺序显然被忽略了。 有没有办法指定它们以某种方式运行的顺序,还是我必须忍受不能合并两个AP的情况? 我制作了一个SSCCE测试用例。 一个简单的&就足以说明问题- 如果在App.java中注释第18行和取消注
我正在尝试在我的Java项目中运行Dagger2和Lombok。当然,龙目岛必须先跑,但它是否真的跑了,似乎要看机会。起初,我怀疑我可以通过库jar在类路径中各自的位置来指定顺序,但这个顺序显然被忽略了。 有没有一种方法可以指定它们运行的顺序,或者我只能忍受不能组合两个AP? 我已经生成了一个SSCCE测试用例。 一个简单的&就足以说明这个问题--如果您在app.java中注释第18行而取消注释第