Об обработке xsl - PullRequest
       14

Об обработке xsl

0 голосов
/ 03 августа 2009

Я использую xsl для преобразования xml в html. В html создается таблица, но появляются некоторые проблемы с не дублированными элементами. Если я использую уникальный ключ для формирования таблицы (xsl for-each каждой строки), например, context, но этот атрибут отсутствует в таблице.

финальный стол такой

context(invisible)  attr1  attr2 attr3
1                     A      b    x
2                     A      b    x
3                     A      c    x
4                     B      a    x

Теперь в то же время я хочу использовать attr1 и attr2 в качестве другого первичного ключа, что означает, что элемент 1 и элемент 2 одинаковы (один будет автоматически удален при обработке xsl). Как xsl достигает этой цели?

1 Ответ

2 голосов
/ 05 августа 2009

Вы можете фильтровать совпадения по 2 атрибутам, используя ось предшествующего брата. Предполагая, что это xml:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
   <row attr1="A" attr2="b" attr3="x"/>
   <row attr1="A" attr2="b" attr3="x"/>
   <row attr1="A" attr2="c" attr3="x"/>
   <row attr1="B" attr2="a" attr3="x"/>
</doc>

Этот XPath вернет только те строки, в которых атрибуты attr1 и attr2 не являются дубликатами.

//row[preceding-sibling::row[@attr1 = self::*/@attr1 and @attr2=self::*/@attr2]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...