2013-06-17 2 views
2

У меня есть следующие части моего xml.проверить, есть ли узел, но не текст

Вариант 1:

<para> 
    <content-style font-style="bold">Affidavit</content-style> 
</para> 

Вариант 2:

<para>This is a different <content-style font-style="bold">Affidavit</content-style> case    
</para> 

я хочу здесь контроль вызвать шаблон раздела, если есть только один узел, присутствует (случай 1), но не тогда, когда он также имеет текст в нем (Случай 2). Я попробовал ниже xslt, но он не работает. пожалуйста, дайте мне знать, как это сделать.

<xsl:template match="para"> 
<xsl:choose> 
<xsl:when test="child::content-style/node[1]"> 
<xsl:call-template name="section"/> 
</when></xsl:choose> 
</xsl:template> 

Благодаря

ответ

1

Из вашего примера, я думаю, вы должны вызвать раздел шаблона для пара с содержанием стиля, но без текста. Лучший способ сделать это что-то вроде следующего:

<xsl:template match="para" /> 
<xsl:template match="para[content-style][not (text())]"> 
      <xsl:call-template name="section"/> 
</xsl:template> 

С XSL: когда это нужно сделать:

<xsl:template match="para" > 
    <xsl:choose> 
     <xsl:when test="content-style and not(text())"> 
      <xsl:call-template name="section"/> 
     </xsl:when> 
    </xsl:choose> 
</xsl:template> 
+0

Привет @ hr_117 спасибо за быстрый ответ, пожалуйста, вы можете сказать мне, как делать я добавьте его, когда условие, так как шаблон para имеет много проверок, среди которых это один. – user2423959

+0

@ user2423959; Посмотрите на обновление. –

+0

Спасибо, что это решило мою проблему. – user2423959

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