以下の XML を想像してください。
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
<book>
<title lang="eng">A book</title>
<price>39.95</price>
</book>
<book>
<title lang="eng">Another Book</title>
<price>39.95</price>
</book>
</bookstore>
この XML ファイルを XHTML で表示する XSL スタイルシートを 1 行に 2 冊だけ作成する必要があります。XML ファイル内の本の数はいつでも変更される可能性があるため、XSL はこれを考慮できる必要があります。これの1つの解決策は、データをテーブルに入れることだと思いましたが、これを作成する有効な方法を理解するのに十分な頭脳を働かせることはできません. 考えられるアイデアは、係数 2 のチェックを実行するか、書籍の総数を 2 で割ることでしたが、これをどのように記述して有効なコードを作成するかを結論付けることができませんでした。以下は、すべての本を 1 つの長い列に順番に表示するための私の最初の解決策です。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/theStyle.css" />
</head>
<body onload="parent.alertsize(document.body.scrollHeight);">
<div>
<!-- <p><xsl:value-of select="count(//book)"/></p>-->
<xsl:for-each select="/bookstore/book">
<h4><xsl:value-of select='title' /></h4>
<p><xsl:value-of select='price' /></p>
<!--<xsl:if test="postion() mod 2 = 0">
<p>a mod 0</p>
</xsl:if>-->
</xsl:for-each>
</div>
</body>
</html>
</xsl:template>
ヒント/ポインター/解決策は大歓迎です。(解決策として必ずしもテーブルを必要とするわけではありません。これは1つのオプションかもしれないと思っただけです)