이 주제에 대한 빌드 : How do I select an XML node with the longest child #text node value with XPath? 테이블의 열 1에서 가장 긴 셀을 찾습니다. 불행하게도 나는 조상이 얼마나 많은 조상을 가지고 있는지 알지 못하며 때로는 서로 다르게 다루어 져야하는 한 텍스트 요소 안에 몇 가지가 있습니다.XSLT 2.0을 사용하여 테이블에서 가장 긴 셀 찾기
XML
<text><table cols="3" rows="2">
<row >
<cell >first cell first row</cell>
<cell >second cell first row
</cell>
<cell >third cell first row
</cell>
</row>
<row >
<cell >first cell second row</cell>
<cell >this is an incredible long text</cell>
<cell />
</row>
</table>
</text>
XSLT : 두 번째 열이 아니므로
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="table">
<xsl:variable name="longest1">
<xsl:sequence select=
"/*/table/row/cell[1][not(string-length(.) < /*/table/row/cell[1]/string-length(.))]"/>
</xsl:variable>
<xsl:value-of select="longest1">
</xsl:template>
</xsl:stylesheet>
코스의 출력은, 수 "첫번째 셀 번째 행"해야 처리됨. 내가 할 일은이/*이 라인의 수정하는 것입니다 확신 해요 :
<xsl:sequence select=
"/*/table/row/cell[1][not(string-length(.) < /*/table/row/cell[1]/string-length(.))]"/>
하지만이 솔루션을보고 관리 할 수 없습니다. 당신이 table
에 대한 템플릿을 작성하는 것처럼
나는 다른 하나는 같은 길이의 이상의 셀이있을 때 작동하지 않았기 때문에, 정렬과 솔루션에 의지했다 : | | | | 는 AAA로 컴파일 할를했다. 나는 그것이 "보다 낮다"라고 생각하고 "낮거나 같아야한다"라고 상상한다. 그러나 그것은 그 속임수를하지 않았다. 다른 손으로 분류 작업이 바로 진행되었습니다! –
martinanton
'
아, 그렇다면 오류가 발생했던 실제 작업 과정에서 구현할 때 엉망이되었습니다.하지만 지금은 작동합니다. – martinanton