У меня есть следующий XML:
<TABLE>
<ROW>
<ENTRY/>
<ENTRY/>
</ROW>
<ROW>
<ENTRY>xxx</ENTRY>
<ENTRY>yyy</ENTRY>
</ROW>
<Z>
<ROW>
<ENTRY/>
<ENTRY/>
</ROW>
</Z>
<ROW>
<ENTRY/>
<ENTRY/>
</ROW>
</TABLE>
Структура таблицы может измениться, поэтому я могу заключить последнюю строку в элемент Z или не может быть элемента Z вообще.
Моя цель - убрать нижнюю границу в записях последней строки таблицы.(ТАБЛИЦА сопоставляется с таблицей HTML, ROW с HTML tr, ENTRY to HTML td)
, поэтому я пытаюсь использовать шаблон xslt:
<xsl:template match="ENTRY">
<td>
<xsl:if test="(ancestor::ROW[1] = ancestor::TABLE[1]/descendant::ROW[last()])">
<!-- remove the bottom border of td -->
</xsl:if>
</td>
</xsl:template>
Но он удаляет границу почти из всех ячеекв таблице (граница не удаляется из ячеек с текстовым содержимым).Поэтому я предполагаю, что механизм проверяет, имеют ли узлы одинаковое значение (имя, текстовое содержимое, дочерние элементы и т. Д.), А не ссылки.Я пытался использовать некоторые внешние функции в Java, но я всегда получаю новую ссылку на узел (даже для тех же узлов), поэтому я не могу сравнить его.
Так что мой вопрос - как сравнитьссылки на узлы ... или выполнить работу любым другим способом.
Заранее спасибо:).