以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 请高手赐教! (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=10548) |
-- 作者:nnpp -- 发布时间:9/23/2004 6:41:00 PM -- 请高手赐教! <?xml version="1.0" encoding="gb2312" ?> <tree> <entity id="5" kind="年级"> <title>五年级</title> <detail> <entity id="121" kind="班级"> <title>甲班</title> <detail> <entity id="1089" kind="学生"> <title>小王</title> <detail> <entity id="20002" kind="语文"> <title>85</title> <detail></detail> </entity> </detail> </entity> <entity id="1089" kind="学生"> <title>小王</title> <detail> <entity id="20003" kind="数学"> <title>80</title> <detail></detail> </entity> </detail> </entity> <entity id="1090" kind="学生"> <title>小张</title> <detail> <entity id="20003" kind="数学"> <title>75</title> <detail></detail> </entity> </detail> </entity> </detail> </entity> </detail> </entity> </tree> 如何使用xsl将以上xml格式转换为以下xml格式? <?xml version="1.0" encoding="gb2312" ?> <tree> <entity id="5" kind="年级"> <title>五年级</title> <detail> <entity id="121" kind="班级"> <title>甲班</title> <detail> <entity id="1089" kind="学生"> <title>小王</title> <detail> <entity id="20002" kind="语文"> <title>85</title> <detail></detail> </entity> <entity id="20003" kind="数学"> <title>80</title> <detail></detail> </entity> </detail> </entity> <entity id="1090" kind="学生"> <title>小张</title> <detail> <entity id="20003" kind="数学"> <title>75</title> <detail></detail> </entity> </detail> </entity> </detail> </entity> </detail> </entity> </tree> |
-- 作者:doubleG -- 发布时间:9/24/2004 9:33:00 AM -- 朋友,我知道问题解决不出来的时候是很焦急的。但是大家都有自己要做的事情,可能一时半会儿不能帮你解决。不用发那么多贴子啊,好吗?呵呵 你的XML这样设计不是很好,不过慢慢体会就能改进了,我按照你的要求写了,有些模块化做得不好,你自己看懂修改就好了。 XSL如下(xmlspy2004下通过,你用的浏览器要支持xsl:key。不过一般都支持,呵呵): <?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:output method="xml" encoding="GB2312" indent="yes"/> <xsl:key name="entityID" match="entity" use="@id"/> <xsl:template match="/"> <xsl:element name="tree"> <xsl:for-each select="//entity[@kind='年级']"> <xsl:call-template name="ReOrderGrade"/> </xsl:for-each> </xsl:element> </xsl:template> <xsl:template name="ReOrderGrade"> <xsl:template name="ReOrderClass"> <xsl:template name="SetTitle"> <xsl:template name="SetAttribute"> <xsl:template name="SetExam">
|
-- 作者:nnpp -- 发布时间:9/24/2004 3:07:00 PM -- 谢谢你,DoubleG! 不好意思,发多了!以后注意!谢谢你能回复我的帖子。谢了! |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
94.238ms |