使用XML数据和XSLT使用HTML创建不同数量的列
我有XML数据,需要像表格一样进行布局。我将在多个页面上使用它,不同的页面需要不同的列使用XML数据和XSLT使用HTML创建不同数量的列,xml,xslt,Xml,Xslt,我有XML数据,需要像表格一样进行布局。我将在多个页面上使用它,不同的页面需要不同的列 <Videos> <Video ID="1"> <Title>Video #1</Title> <Img>http//www.test.com/Images/Img1.jpg</Img> <URL>http://www.youtube.com/watch?v=ABCDE12345
<Videos>
<Video ID="1">
<Title>Video #1</Title>
<Img>http//www.test.com/Images/Img1.jpg</Img>
<URL>http://www.youtube.com/watch?v=ABCDE12345</URL>
</Video>
<Video ID="2">
<Title>Video #2</Title>
<Img>http//www.test.com/Images/Img2.jpg</Img>
<URL>http://www.youtube.com/watch?v=12345ABCDE</URL>
</Video>
<Video ID="3">
<Title>Video #3</Title>
<Img>http//www.test.com/Images/Img3.jpg</Img>
<URL>http://www.youtube.com/watch?v=A1B2C3D4E5</URL>
</Video>
<Video ID="4">
<Title>Video #4</Title>
<Img>http//www.test.com/Images/Img4.jpg</Img>
<URL>http://www.youtube.com/watch?v=1A2B3C4D5E</URL>
</Video>
</Videos>
对于不同的页面,我需要每行有2个视频:
Video#1 Video#2 Video#3
Video#4
Video#1 Video#2
Video#3 Video#4
对于不同的页面,我需要每行有一个视频:
Video#1
Video#2
Video#3
Video#4
谢谢你能给我的任何帮助这里有一个方法你可以做到这一点。 您只需修改最后一个模板,将实际需要的数据包含在表单元格中
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" indent="yes"/>
<!-- Parameter to indicate the number of video elements per row -->
<xsl:param name="vidCol" select="3"/>
<xsl:template match="/">
<html>
<head>
<title>Videos</title>
</head>
<body>
<table>
<xsl:choose>
<xsl:when test="$vidCol = 1">
<xsl:apply-templates select="Videos/Video" mode="grouping"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="Videos/Video[position() mod $vidCol = 1]" mode="grouping"/>
</xsl:otherwise>
</xsl:choose>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="Video" mode="grouping">
<tr>
<xsl:apply-templates select=". | following-sibling::Video[position() < $vidCol]"/>
</tr>
</xsl:template>
<xsl:template match="Video">
<td>
<xsl:value-of select="Title"/>
</td>
</xsl:template>
</xsl:stylesheet>
视频
查看此处的工作情况:XSLT不“布局”项目,它可能发生在XSL-FO或使用CSS的HTML中,但您需要首先了解这样一种目标格式是如何做到这一点的,只有这样您才能使用XSLT动态生成格式。您使用的是哪种XSLT引擎?它支持XSLT2.0吗?