使用xsl:param进行xpath选择

时间:2014-04-10 17:07:37

标签: xml xslt xpath

我有一个复杂的xml文件,需要从命令行中使用参数从中选择一些节点。

转换应显示从时间x到时间y的所有服务

这里我们使用我的xsl文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:param name="Time_from"/>
    <xsl:param name="Time_to"/>

    <xsl:template match="/Services/Service[(@time mod 1000000) &lt; number($Time_from)
                                       and (@time mod 1000000) &gt; number($Time_to)
                                            ]">
        <xsl:copy-of select="current()" />

    <xsl:template match="/">
        <SelectedServices>
            <xsl:apply-templates />
        </SelectedServices>
    </xsl:template>

</xsl:stylesheet> 

时间是字符串格式YYYYMMDDHHmmss,这就是我使用mod查找正确节点的原因。

但是当我进行转换时,没有选择任何内容,如果我将$ time_from $ time_to变量替换为我找到节点的值。

有人可以帮助我吗?

XML文件看起来像

<Services>
  <Service time="20140410060000">Service Value 1</Service>
  <Service time="20140410071300">Service Value 2</Service>
</Services>

0 个答案:

没有答案