У меня есть xml, который иногда может иметь узел DSD_G22, но не всегда. SO, если этот узел присутствует, тогда получите значение элементов, в противном случае присвойте пустое значение:
сценарий ввода 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>