这种情况该不该用xslt 的第归转化? 既然<item>只有一个,<items>就不必要 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请把问题问清楚点,若是该XML格式是固定的,那太easy.但若是循环产生的,甚至如<ii>这样的tag都是动态的话,那就要嵌套循环了。哪些tag是固定的有且仅有一个,又哪些tag是动态的,需讲明。 既须提供Schema,对比你上面给的<table>示例,其xsl:<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"><xsl:template match="/"> <html> <head> <title>test</title> </head> <body> <table border="1" > <tr> <td><xsl:value-of select="string(items/item/i)"></xsl:value-of></td> <td><table bgcolor="1"> <tr> <td><xsl:value-of select="string(items/item/ii/ii1)"></xsl:value-of></td> <td><xsl:value-of select="string(items/item/ii/tt)"></xsl:value-of></td> <td><table border="1"><tr><td><xsl:value-of select="string(items/item/ii/vv/kk)"></xsl:value-of></td> </tr> </table></td> </tr> </table> </td> </tr> <tr><td><xsl:value-of select="string(items/item/ss)"></xsl:value-of></td> </tr> </table> </body> </html></xsl:template></xsl:stylesheet>这显然不是楼主的意思吧:) 先谢谢各位,不过都误会了.item之间的元素都是动态的,不能写死.每出现一个,就产生一个table,如果其子元素中还有子元素,则table中再套一个table.以次类推.只有(items><item>是死的,之间的元素及子元素都不定的.名称,个数都不定的,所以用了第归,我上面写的只是个事例. 既然这样,必须要递归了。首先写个显示<table></table>的template,如取名为show_table这个show_table完成两件事,一是显示<table><tr>等tag;二是判断当前结点是否还有孩子,若有,则再调用本身show_table。这里实现了递归。 兄弟,上面的fuchunjie(还没想好) 是我们的xsl王子,我把他请来给你做解答了:) 谢谢王子和kreven兄弟,呵呵~~基本上实现了,数据都可以第归取出了,就是显示table还有点问题.结帐拉 想讨论下数据库持久层的必要性 java调用bat文件 JavaFX 这东西有前途么? hibernate中,多个请求能否共享一个session,假如这多个请求都被放到一个线程中处理 高手请进 struts中乱码问题 xsl中取xml中的值,急 Javamail的mail.jar怎么用啊?急!!! JS中如何使某个表单变灰不可用? 未做过JAVA开发,想问问你们! 超cool多态--interface来实现的...有点不理解... 怎么更改程序的图标?我不想总用那一个
但若是循环产生的,甚至如<ii>这样的tag都是动态的话,那就要嵌套循环了。
哪些tag是固定的有且仅有一个,又哪些tag是动态的,需讲明。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<head>
<title>test</title>
</head>
<body>
<table border="1" >
<tr>
<td><xsl:value-of select="string(items/item/i)"></xsl:value-of></td>
<td><table bgcolor="1">
<tr>
<td><xsl:value-of select="string(items/item/ii/ii1)"></xsl:value-of></td>
<td><xsl:value-of select="string(items/item/ii/tt)"></xsl:value-of></td>
<td><table border="1"><tr><td><xsl:value-of select="string(items/item/ii/vv/kk)"></xsl:value-of></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
<tr><td><xsl:value-of select="string(items/item/ss)"></xsl:value-of></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这显然不是楼主的意思吧:)
每出现一个,就产生一个table,
如果其子元素中还有子元素,则table中再套一个table.以次类推.
只有(items><item>是死的,之间的元素及子元素都不定的.
名称,个数都不定的,所以用了第归,
我上面写的只是个事例.
首先写个显示<table></table>的template,如取名为show_table
这个show_table完成两件事,
一是显示<table><tr>等tag;
二是判断当前结点是否还有孩子,若有,则再调用本身show_table。这里实现了递归。
结帐拉