gpt4 book ai didi

xml - 你可以放一个xsl :if test inside a Choose statement in an xslt?

转载 作者:行者123 更新时间:2023-12-02 15:32:22 25 4
gpt4 key购买 nike

我必须构建一个小的条件语句,但我不确定最好的方法。我也不确定是否可以将 IF 测试放在 Choose/When 语句中。 (我假设你不能?)

尝试解决以下情况:将“custom_field”从一个系统映射到另一系统中的“Position”:如果自定义字段恰好为空,则默认为从系统 A 到系统 B 中的“Position”的同名字段“Position”中传递的值。

“位置”默认出现,并且在 xml 中永远不应该为空,但自定义字段有可能为空。首选是使用自定义字段,但如果该字段为空,则应使用默认数据。

<user>
<Custom_Field>Data</Custom_Field>
<Position>Data</Position>
</user>

这合法吗:

<xsl:choose>
<xsl:if test="custom_field != ''">
<Position><xsl:value-of select='.'/></Position>
</xsl:if>
</xsl:choose>

或者 Choose 语句仅适用于 When?如何评估自定义字段是否为空并在为空时设置默认场景?

抱歉 - 这是一个水槽或游泳环境,我仍在学习。非常感谢所有帮助,并注明以供将来引用。

我试图基于 XML 中的数据实现的可能场景:

场景 1:输入 XML:

<user>
<Custom_Field>Admin</Custom_Field>
<Position>Teacher</Position>
</user>

输出 XML:

<user>
<Position>Admin</Position>
</user>

场景 2:输入 XML:

<user>
<Custom_Field></Custom_Field>
<Position>Teacher</Position>
</user>

输出 XML:

<user>
<Position>Teacher</Position>
</user>

最佳答案

我想在答案中补充一点:XSLT 初学者经常过度使用 xsl:choose。您还没有显示足够的代码来查看这里是否是这种情况。但很多时候,在 XSLT 中进行条件处理的正确方法是将模板规则分解为更小的规则,并将谓词放入匹配模式中,例如

<xsl:template match="para[@class='x']>...

<xsl:template match="para[@class='y']>...

关于xml - 你可以放一个xsl :if test inside a Choose statement in an xslt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19508220/

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