gpt4 book ai didi

XSLT 一次性插入自定义文本

转载 作者:行者123 更新时间:2023-12-02 00:40:34 25 4
gpt4 key购买 nike

以下是一个预先存在的 xml 文件。我想知道如何使用 xslt 在第一个元素之前插入一个元素?

<XmlFile>
<!-- insert another <tag> element here -->
<tag>
<innerTag>
</innerTag>
</tag>
<tag>
<innerTag>
</innerTag>
</tag>
<tag>
<innerTag>
</innerTag>
</tag>
</XmlFile>

我正在考虑使用 for-each 循环并测试位置 = 0,但是在 for-each 第一次出现时已经太晚了。这是一次性文本,因此我无法将它与 xsl 文件中已有的其他 xslt 模板组合。

谢谢。

最佳答案

您应该知道并记住一件最重要的事情:身份规则

这是一个使用最基本的 XSLT 设计模式的非常简单紧凑的解决方案:使用和覆盖身份规则:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>

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

<xsl:template match="/*/*[1]">
<someNewElement/>
<xsl:call-template name="identity"/>
</xsl:template>
</xsl:stylesheet>

当此转换应用于提供的 XML 文档时,会产生所需的结果:

<XmlFile>
<!-- insert another <tag> element here -->
<someNewElement />
<tag>
<innerTag>
</innerTag>
</tag>
<tag>
<innerTag>
</innerTag>
</tag>
<tag>
<innerTag>
</innerTag>
</tag>
</XmlFile>

关于XSLT 一次性插入自定义文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2695678/

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