2014-01-16 4 views
1

Я работаю с некоторыми файлами XML, в которых в некоторых случаях узел HName доступен в некоторых файлах, а отсутствует в других. Вот два примера:Использование условий в XSL

Xml # 1:

<HSegment> 
<Code>ABC</Code> 
</HSegment> 

Xml # 2:

<HSegment> 
<Code>ABC</Code> 
<HName>JW BEACH</HName> 
</HSegment> 

Я пытаюсь разобрать файлы XML с помощью двух условий:

  1. Обработать значение в поле данных, если оно доступный.
  2. В противном случае вставка «NULL», если она недоступна.

XSL код, который я работаю с ниже добавляет «NULL» в обоих случаях:

<Des> 
<xsl:choose> 
<xsl:when test="//PNR/SList/HSegment/HName='HName'"> 
</xsl:when> 
<xsl:otherwise> 
<xsl:text>NULL</xsl:text> 
</xsl:otherwise> 
</xsl:choose> 
</Des> 

Спасибо заранее!

ответ

1

Изменить проверку присутствия выглядеть следующим образом:

//PNR/SList/HSegment/HName 

В контексте:

<xsl:choose> 
    <xsl:when test="//PNR/SList/HSegment/HName"> 
     <!-- do whatever --> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:text>NULL</xsl:text> 
    </xsl:otherwise> 
</xsl:choose> 
+0

Спасибо за ваш вклад, но я попробовал этот подход, а также. Это не анализирует файлы XML, в которых есть (HName) узел. Они терпят неудачу. –

+0

Я проверил, и это работает нормально. Если это не удается, то это по какой-то другой причине, о которой вы не упомянули в своем вопросе. –

Смежные вопросы