| ⇒ |
|
XML ではこんな変換になる。
<?xml version="1.0" encoding="UTF-8" ?>
<matrix>
<r><c>a</c><c>b</c><c>c</c></r>
<r><c>d</c><c>e</c><c>f</c></r>
</matrix>
↓
<matrix>
<r><c>a</c><c>d</c></r>
<r><c>b</c><c>e</c></r>
<r><c>c</c><c>f</c></r>
</matrix>
こんな XSLT が一個の解になる。(Eclipse で確認)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/matrix/r[1]">
<matrix>
<xsl:for-each select="c">
<r>
<xsl:variable name="col-index" select="position()"/>
<xsl:for-each select="../../r/c[$col-index]">
<c><xsl:value-of select="."/></c>
</xsl:for-each>
</r>
</xsl:for-each>
</matrix>
</xsl:template>
<xsl:template match="r[position()!=1]"/>
</xsl:stylesheet>
0 件のコメント:
コメントを投稿