2013-03-26 6 views
1

Я ищу, чтобы исправить некоторые таблицы с помощью XSLT. Мне нужно использовать атрибут Colspan, но код, который я конвертирую, использует namest и nameend.строки и математические операции в xslt

пример:

<entry namest="col1" nameend="col3"> 

мне нужно, чтобы превратить это в <td colspan="3">. Я подумал об установке переменных, а затем с помощью substring($var,4,1), чтобы получить номер в конце col3/col1, а затем выполнив математику, вычитая цифру из namest из цифры из nameend, а затем добавив ее, но она не сработала.

+0

, что должно быть легко, вы должны соответствовать атрибуты, используя «@», например, @ Col1. Но дайте нам исходный XML и XSLT, которые у вас есть до сих пор - без этого никто не может реально помочь. – Peter

ответ

1

Если entry является узел контекста, следующее выражение возвращает разность значений «Col» плюс один, который должен быть Colspan значение, которое вы ищете:

substring(@nameend, 4) - substring(@namest, 4) + 1 

substring(@attr, 4) возвращает подстроку @attr начиная с четвертого символа до конца. Подстроки неявно преобразуются в числа с помощью оператора минус.

Испытание выражения с LibXSLT-х xmllint:

$ echo '<entry namest="col1" nameend="col3"/>' >so.xml 
$ xmllint --shell so.xml 
/> cd entry 
entry > xpath substring(@nameend, 4) - substring(@namest, 4) + 1 
Object is a number : 3 
Смежные вопросы