Как проверить, присутствует ли узел в файле или нет - PullRequest
0 голосов
/ 26 января 2011

У меня есть 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>

Ответы [ 2 ]

0 голосов
/ 26 января 2011

<xsl:if test="count(DSD_G22) > 0"> Exists! </xsl:if>

0 голосов
/ 26 января 2011

Это сделало бы это для вас:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...