gpt4 book ai didi

xslt - 如何获取一个转换后的 xml 文件,其中父标签的每次出现的所有子标签仅在一个父标签下

转载 作者:行者123 更新时间:2023-12-02 00:21:57 26 4
gpt4 key购买 nike

我正在使用这个输入 xml 文件。

                 <Content>
<body><text>xxx</text></body>
<body><text>yy</text></body>
<body><text>zz</text></body>
<body><text>kk</text></body>
<body><text>mmm</text></body>
</Content>

Xslt 转换后的输出应该是

                        <Content>
<body><text>xxx</text>
<text>yy</text>
<text>zz</text>
<text>kk</text>
<text>mmm</text></body>
</Content>

谁能提供一下相关的Xsl文件

最佳答案

这个完整的转变:

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

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

<xsl:template match="body"/>
<xsl:template match="body[1]">
<body>
<xsl:apply-templates select="../body/node()"/>
</body>
</xsl:template>
</xsl:stylesheet>

应用于提供的 XML 文档时:

<Content>
<body>
<text>xxx</text>
</body>
<body>
<text>yy</text>
</body>
<body>
<text>zz</text>
</body>
<body>
<text>kk</text>
</body>
<body>
<text>mmm</text>
</body>
</Content>

产生想要的、正确的结果:

<Content>
<body>
<text>xxx</text>
<text>yy</text>
<text>zz</text>
<text>kk</text>
<text>mmm</text>
</body>
</Content>

解释:

  1. identity rule “按原样”复制每个节点。

  2. 它被两个模板覆盖。第一个忽略/删除每个 body元素`。

  3. 覆盖身份模板的第二个模板也覆盖第一个这样的模板(删除每个 body 元素)对于任何 body第一个元素 body其 parent 的 child 。对于这个第一body只有 child ,body生成元素,在其主体中所有节点都是任何 body 的子节点处理其父项的子项(当前 body 元素及其所有 body 兄弟项)。

关于xslt - 如何获取一个转换后的 xml 文件,其中父标签的每次出现的所有子标签仅在一个父标签下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598386/

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