XSLT - 在模板中设置条件,仅对后续节点执行一次

时间:2016-10-07 23:13:40

标签: xslt-1.0

我是XLST的新手,在此门户网站中搜索帮助后发布了我的问题。

我有一个典型的场景,我需要将XML转换为目标XML,作为下面记录节点级别的每个状态的块。 但是标题<eventName><eventdate>只应在目标文件的第一个区块中出现一次。

我在Header上使用嵌套for循环,在记录中的另一个循环中扫描每个状态代码。一旦我发现状态代码是!='00'然后调用模板。

如何在模板中检查或设置条件,以便仅对模板上的后续调用执行一次?

尝试使用一个参数,该参数在顶部循环中定义,其值为position(),但它不能作为记录级别工作,它将保持相同。

请告知解决方案。 输入XML的示例如下所示:

<?xml version="1.0" encoding="utf-8"?>
<n0:example>
    <eventName>Managers Event</eventName>
    <eventdate>09292016</eventdate>
    <header>
        <status>01</status>
        <SubHead>
            <Record>
                <status>10</status>
                <Service>Food</Service>
            </Record>
            <Record>
                <status>00</status>
                <Service>Music</Service>
            </Record>
        </SubHead>
    </header>
    <header>
        <status>02</status>
        <SubHead>
            <Record>
                <status>11</status>
                <Service>Food</Service>
            </Record>
            <Record>
                <status>00</status>
                <Service>Music</Service>
            </Record>
        </SubHead>
    </header>
</n0:example>

0 个答案:

没有答案