Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取下一个节点&x27;XSLT中for循环中的s子值_Xslt - Fatal编程技术网

如何获取下一个节点&x27;XSLT中for循环中的s子值

如何获取下一个节点&x27;XSLT中for循环中的s子值,xslt,Xslt,我试图从XSLT中for循环内的下一个节点访问值 XML源是: <?xml version="1.0" encoding="UTF-8"?> <tree> <parent> <id>1</id> <child> <effective_date>01-09-2019</effective_date> <hours>10</hours>

我试图从XSLT中for循环内的下一个节点访问值

XML源是:

<?xml version="1.0" encoding="UTF-8"?>
<tree>
<parent>
    <id>1</id>
    <child>
        <effective_date>01-09-2019</effective_date>
        <hours>10</hours>
        <dept>1</dept>
    </child>
    <child>
        <effective_date>01-10-2019</effective_date>
        <hours>20</hours>
        <dept>1</dept>
    </child>
    <child>
        <effective_date>01-10-2019</effective_date>
        <class>A</class>
    </child>
</parent>
    <parent>
        <id>2</id>
        <child>
            ...
        </child>
        <child>
            ..
        </child>
    </parent>
</tree> 

在我最初的xslt中,我在一个for循环中,我根据子元素是否在小时内发生变化有条件地输入该循环。因此这必须在for循环中访问。

如果
xsl:for-each
迭代同级元素,那么您可以使用
后续同级元素::*

如果对任意序列$SEQ进行迭代,则可以使用以下方法获得下一个元素:

  • XSLT2.0:
    子序列($SEQ,position()+1,1)

  • XSLT1.0:


不要犯使用
$SEQ[position()+1]
的错误,
position()
的值在谓词中会发生变化。

我看不到下面将“weci:Effective\u Change”作为
weci:Effective\u Moment
?@AmrendraKumar:基本上,我想访问下一个有效的变化,weci:Effective\u Moment。我不确定,当我还在for each循环的第一次迭代中时,如何才能实现这一点。使用最少的样本,而不是您的实际数据,您将得到更好的答案。另外,那些嵌套的
xsl:choose
不是典型的XSLT流。我现在将其修改为一个更简单的版本,以解释我需要在结果中实现什么谢谢。我在第二个xslt中使用了以下同级::*[1]/我在第一个xslt的输出xml上使用了它,它解决了我的问题。
<?xml version="1.0" encoding="UTF-8"?>
<employees>
    <departments>
        <department>
            <code>1</code>
            <weeklyHours>10</weeklyHours>
            <validFrom>2019-09-09</validFrom>
            <validUntil>2019-10-01</validUntil
        </department>
        <department>
            <code>1</code>
            <weeklyHours>20</weeklyHours>
            <validFrom>2019-10-01</validFrom>
            <validUntil/>
        </department>
    </departments>
</employees>