XSLT / XPATH - Найти строку таблицы с наибольшим количеством столбцов - PullRequest
0 голосов
/ 10 июня 2019

Я преобразовываю таблицу xml в другую спецификацию таблицы, и мне нужно определить максимальное количество столбцов, присутствующих в любой строке в данной таблице.Поэтому, если мой XML:

<table>
    <row>
        </column>
    </row>
    <row>
        </column>
        </column>
        </column>
    </row>
    <row>
        </column>
        </column>
    </row>  
</table>

, мне нужно получить «3» в качестве переменной в шаблоне моей таблицы, чтобы я мог переписать таблицу следующим образом:

<table cols="3">
...

I 'я делаю это, что очень глупо (но достаточно хорошо ...).

    <xsl:template match="table">        
        <xsl:variable name="high_col_count">
            <xsl:choose>
                ...
                <xsl:when test="tr/td[position()=4]">4</xsl:when>
                <xsl:when test="tr/td[position()=3]">3</xsl:when>
                <xsl:when test="tr/td[position()=2]">2</xsl:when>
                ...
            </xsl:choose>
        </xsl:variable>
    ...
</xsl:template>

Я не могу определить, что лучше было бы сделать это без итерации по переменной, что, как я понимаю, не 'Это возможно в xslt из-за неизменности переменных.Есть ли более простой способ просто получить счетчик из строки с наибольшим количеством столбцов?

1 Ответ

1 голос
/ 10 июня 2019

Попробуйте использовать это вместо:

<xsl:template match="table">
  <table cols="{max(row/count(column))}">
  ...
  </table>
</xsl:template>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...