2013-06-26 3 views
0

XML:как получить значение атрибута XML с помощью XSLT переменной

<sheet> 
    <row num="4"> 
     <cell num="1">Customer CODE</cell> 
     <cell num="2">2213213</cell> 
    </row> 
    <row num="5"> 
     <cell num="1">header</cell> 
     <cell num="4">12312</cell> 
    </row> 
</sheet> 

Я хочу задать значение переменной 5. Потому что в 5-й строке есть ячейка [@ num = '1'], которая равна header.

Это просто возвращает true

<xsl:variable name="header_pos" select="//row/cell[@num='1']='header'"/> 

Но я не знаю, как получить значение Num строки для этой ячейки .. Не могли бы вы помочь

ответ

4

Это выражение, которое вы ищете:

<xsl:variable name="header_pos" select="//row[cell[@num='1']='header']/@num"/> 

т.е. Получить строку, когда ячейка, с атрибутом Num = '1', имеет значение 'заголовка'

1

Попробуйте следующее:

<table xsl:version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:variable name="header_pos" select="sheet/row/cell/@num" /> 
<xsl:value-of select="$header_pos" separator=", "/> 
</table>