想象一下下面的 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>
我需要创建一个 XSL 样式表,以 XHTML 格式显示这个 XML 文件,每行只有 2 本书。XML 文件中的书籍数量可能随时更改,因此 XSL 需要能够考虑到这一点。我认为解决此问题的一种方法是将数据放入表格中,但是我无法绞尽脑汁想出一种有效的方法来创建它。可能的想法是执行模 2 检查或将总账簿除以 2,但仍无法得出结论如何编写此代码以创建有效代码。以下是我在一个长列中一个接一个地显示所有书籍的初始解决方案。
<?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>
非常感谢任何提示/指针/解决方案。(不一定需要表格作为解决方案,我只是认为这可能是一种选择)