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
Xml XSLT只执行一次应用模板_Xml_Xslt_Apply Templates - Fatal编程技术网

Xml XSLT只执行一次应用模板

Xml XSLT只执行一次应用模板,xml,xslt,apply-templates,Xml,Xslt,Apply Templates,XSLT- 输入XML- <Address> <xsl:apply-templates select="Orders/Rows/Row[addres_no/number = $addr_no]" /> </Address> 1. 1. 3. 在上面的示例中,如果地址号与addr_no变量值匹配,我将执行一个模板 我希望“应用模板”只执行一次,即使找到多个匹配项 例如,如果$addr_no=1,它将找到两个匹配项,但我只想得到第一个可用项 我试过了-

XSLT-


输入XML-

<Address>
<xsl:apply-templates select="Orders/Rows/Row[addres_no/number = $addr_no]" />
</Address>

1.
1.
3.
在上面的示例中,如果地址号与addr_no变量值匹配,我将执行一个模板

我希望“应用模板”只执行一次,即使找到多个匹配项

例如,如果$addr_no=1,它将找到两个匹配项,但我只想得到第一个可用项

我试过了-

<Orders>
    <Rows>
        <Row>
            <addres_no>
                <number>1</number>
            </addres_no>
        </Row>
        <Row>
            <addres_no>
                <number>1</number>
            </addres_no>
        </Row>
        <Row>
            <addres_no>
                <number>3</number>
            </addres_no>
        </Row>
    </Rows>
</Orders>


但这不起作用。

添加
[1]
应该会起作用。请发表一篇文章,以便我们重现您的问题。您的实际XML中是否有多个
元素?在这种情况下,您应该尝试执行
添加
[1]
操作。请发表一篇文章,以便我们重现您的问题。您的实际XML中是否有多个
元素?在这种情况下,您应该尝试执行
<xsl:apply-templates select="Orders/Rows/Row[addres_no/number = $addr_no][1]" />