我有xml,有时可能有节点DSD_G22,但并非总是如此。因此,如果该节点存在,则获取元素的值,否则分配为空: 输入1场景:
<root>
<G_83>
<G_8301/>
<G_8302/>
</G_83>
<DSD_G22>
<DSD_G22_G2201>Value</DSD_G22_G2201>
<DSD_G22_G2202>Value1</DSD_G22_G2202>
</DSD_G22>
</root>
场景输入2:
<root>
<G_83>
<G_8301/>
<G_8302/>
</G_83>
</root>
方案2的输出应为:
<G_83>
<G_8301/>
<G_8302/>
</G_83>
<DSD_G22>
<DSD_G22_G2201/>
<DSD_G22_G2202/>
<DSD_G22/>
</root>
我试图这样做但不起作用。请帮助:
<xsl:variable name="emptySpace" select="' '" />
<xsl:if test="@DSD_G22">
<xsl:if test="@DSD_G22_G2201">
<xsl:attribute name="DSD_G22_G2201">
<xsl:value-of select="@DSD_G22_G2201" />
</xsl:attribute>
</xsl:if>
<xsl:if test="@DSD_G22_G2202">
<xsl:attribute name="DSD_G22_G2202">
<xsl:value-of select="@DSD_G22_G2202" />
</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="not(@DSD_G22)">
<xsl:attribute name="DSD_G22_G2201">
<xsl:value-of select="@emptySpace " />
</xsl:attribute>
<xsl:attribute name="DSD_G22_G2202">
<xsl:value-of select="@emptySpace" />
</xsl:attribute>
</xls:if>
答案 0 :(得分:0)
这可以帮到你:
<DSD_G22>
<DSD_G22_G2201><xsl:value-of select="DSD_G22/DSD_G22_G2201"/></DSD_G22_G2201>
<DSD_G22_G2202><xsl:value-of select="DSD_G22/DSD_G22_G2202"/></DSD_G22_G2202>
</DSD_G22>
答案 1 :(得分:0)
<xsl:if test="count(DSD_G22) > 0">
Exists!
</xsl:if>