gpt4 book ai didi

xslt - 与另一个模板一起使用时身份转换奇怪的行为

转载 作者:行者123 更新时间:2023-12-04 18:00:31 25 4
gpt4 key购买 nike

我见过奇怪的行为,奇怪的意思是它的行为与我们正常情况下的情况相反。以下是详细信息:

XSLT Code

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:template match="child[@include='1']"/>

<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

Source XML

<?xml version="1.0" encoding="UTF-8"?>
<Parent>
<child include='1'>
<Attribute>Attribute1</Attribute>
</child>
<child include='1'>
<Attribute>Attribute2</Attribute>
</child>
<child include='0'>
<Attribute>Attribute3</Attribute>
</child>
<child include='0'>
<Attribute>Attribute4</Attribute>
</child>
</Parent>

And my result is:

<Parent>
<child include="0">
<Attribute>Attribute3</Attribute>
</child>
<child include="0">
<Attribute>Attribute4</Attribute>
</child>
</Parent>

按照正常的条件,我们根据条件应用结果应该如下所示

<xsl:template match="child[@include='1']"/>
<Parent>
<child include="1">
<Attribute>Attribute3</Attribute>
</child>
<child include="1">
<Attribute>Attribute4</Attribute>
</child>
</Parent>

希望我已经详细解释了:这是代码和 xslt 处理器的链接:Sample Code

最佳答案

我不确定您的期望是基于什么。

您的第一个模板的优先级为 0.5,而您的第二个(身份转换)模板的优先级为 -0.5。

因此,应用于所有 include 属性为 1child 元素的模板是第一个模板。 此模板是空的,因此它不输出任何内容。因此,没有 child 元素具有 1include 属性> 出现在输出中。

所有其他节点都与第二个模板匹配,该模板将它们(并通过递归,它们的后代)复制到输出。

关于xslt - 与另一个模板一起使用时身份转换奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36146381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com