2017-01-12 5 views
0

Учитывая следующий пример XML:XSLT1 - Тест, если все выбранные узлы имеют определенный атрибут

<table> 
    <tr> 
     <td style="border-top:1px"> 
      <p class="bodytext">right</p> 
     </td> 
     <td style="border-top:1px"> 
      <p class="bodytext">left right</p> 
     </td> 
     <td style="border-top:1px"> 
      <p class="bodytext">left</p> 
     </td> 
    </tr> 
    <tr> 
     <td style="border-top:1px"> 
      <p class="bodytext">right</p> 
     </td> 
     <td style="border-top:1px"> 
      <p class="bodytext">left right</p> 
     </td> 
     <td style="border-top:1px"> 
      <p class="bodytext">left</p> 
     </td> 
    </tr> 
</table> 

Я хотел бы проверить, если ALL ТДСА первого TR имеет атрибут набор стилей для внешних пунктов пропуска Вверх.

Следующее выражение, очевидно, не работает:

<xsl:when test="tr[1]/td/@style[contains(.,'border-top')]"> 
</xsl:when> 

Я использую XSLT1, есть простой способ сделать это?

ответ

1

Я нашел ответ в этом question.

В основном, это делается путем получения всех узлов, которые мы хотим проверить и сравнить эту последовательность с отфильтрованной последовательностью, в которой мы нуждаемся.

Так что в моем случае: tr[1]/td[@style[contains(.,'border-top')]]=tr[1]/td

Благодаря Dimitre!

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