html - XML 到表
问题描述
我正在尝试将以下内容转换为表格,但我很难理解它是如何解析所有子节点的。它会遍历每个元素直到最后一个元素,还是我需要为每个父节点设置一个 for-each ?此外,如果允许多次出现“capris”,我是否需要为每个可能出现的单元格设置单元格(例如,如果最多有 3 个但我只有 2 个,那么我仍然需要显示 3 个单元格)。
XML:
<Persons xmlns = "">
<Person>
<Shirts>One</Shirts>
<Pants>
<Jeans>
<Shorts>One</Shorts>
<Capris>One</Capris>
<Capris>Two</Capris>
</Jeans>
<Dress>One</Dress>
</Pants>
</Person>
<Person>
<Shirts>One</Shirts>
<Pants>
<Jeans>
<Shorts>One</Shorts>
<Capris>One</Capris>
<Capris>Two</Capris>
<Capris>Three</Capris>
</Jeans>
<Dress>One</Dress>
</Pants>
</Person>
</Persons>
XSL:
<table border="1">
<tr bgcolor="yellow">
<td><b>Shirts</b></td>
<td><b>Shorts</b></td>
<td><b>Capris</b></td>
<td><b>Capris</b></td>
<td><b>Capris</b></td>
</tr>
<xsl:for-each select="Persons">
<xsl:sort select="Persons/Persib" />
<tr style="font-size: 10pt; font-family: verdana">
<td><xsl:value-of select="Shirts"/></td>
<td><xsl:value-of select="Shorts"/></td>
<td><xsl:value-of select="Capris"/></td>
</tr>
</xsl:for-each>
</table>
解决方案
您的xsl:for-each
匹配规则错误。
使用以下模板:它匹配根<Persons>
元素,创建<html>
and<body>
元素和<table>
.
最后,它<Person>
使用xsl:for-each
. 这是可行的,因为上下文节点是正确的(Person
是 的子节点Persons
)。
这种Capris
情况通过遍历所有元素并为每个当前元素Capris
创建一个来解决。<td>
您可以通过查看元素的边界来看到这一点。
需要纠正的一件事是xsl:sort
元素。它尝试按<Persib>
示例中不存在的元素的值进行排序。我想你可以自己解决这个问题。
<xsl:template match="/Persons">
<html>
<body>
<table border="1">
<tr bgcolor="yellow">
<td><b>Shirts</b></td>
<td><b>Shorts</b></td>
<td><b>Capris</b></td>
<td><b>Capris</b></td>
<td><b>Capris</b></td>
</tr>
<xsl:for-each select="Person">
<xsl:sort select="Persib" />
<tr style="font-size: 10pt; font-family: verdana">
<td>
<xsl:value-of select="Shirts"/>
</td>
<td>
<xsl:value-of select="Pants/Jeans/Shorts"/>
</td>
<xsl:for-each select="Pants/Jeans/Capris">
<td>
<xsl:value-of select="." />
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
输出应该符合要求。
推荐阅读
- mongodb - 使用私钥( file.pem )和没有 mongo_url 的用户连接外部 mongodb
- javascript - Wamp,node JS和express之间的区别?
- python - 运行由 cpython 创建的 main.c 时找不到 Python.h
- python - 我可以在 pandas 聚合语句中添加未聚合的列吗?
- xcopy - XCopy 排除文件类型
- html - 如何删除左填充或留空空间?在 asp.net 布局中?
- lint - 是否有 Pick UniVerse 短绒?
- loops - 如何重新创建库存
- java - ExectuorService 和 CompletableFuture 的关系
- php - PHP检查字符串是否包含括号