gpt4 book ai didi

xml - 当子节点满足一定条件时移除 XML 节点

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:55 24 4
gpt4 key购买 nike

我有以下 xml:

<listaGiros>

<giro>
<idGiro type="int">89</idGiro>
<nombreGiro type="varchar">foo</nombreGiro>
</giro>

<giro>
<idGiro type="int">78</idGiro>
<nombreGiro type="varchar">apple</nombreGiro>
</giro>

<giro>
<idGiro type="int">10</idGiro>
<nombreGiro type="varchar"/>
</giro>
</listaGiros>

我想成为:

<listaGiros>

<giro>
<idGiro type="int">89</idGiro>
<nombreGiro type="varchar">foo</nombreGiro>
</giro>

<giro>
<idGiro type="int">78</idGiro>
<nombreGiro type="varchar">apple</nombreGiro>
</giro>

</listaGiros>

因为我需要删除每个 <giro> <nombreGiro> 的节点是空的

使用 XSLT 的最佳方法是什么?
提前谢谢你

最佳答案

使用:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" 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="giro[not(nombreGiro/text())]"/>
</xsl:stylesheet>

当此转换应用于提供的 XML 文档时:

<listaGiros>
<giro>
<idGiro type="int">89</idGiro>
<nombreGiro type="varchar">foo</nombreGiro>
</giro>
<giro>
<idGiro type="int">78</idGiro>
<nombreGiro type="varchar">apple</nombreGiro>
</giro>
<giro>
<idGiro type="int">10</idGiro>
<nombreGiro type="varchar"/>
</giro>
</listaGiros>

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

<listaGiros>
<giro>
<idGiro type="int">89</idGiro>
<nombreGiro type="varchar">foo</nombreGiro>
</giro>
<giro>
<idGiro type="int">78</idGiro>
<nombreGiro type="varchar">apple</nombreGiro>
</giro>
</listaGiros>

关于xml - 当子节点满足一定条件时移除 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620282/

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