以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 请教一个xml转换的问题!急!!!万分感谢 (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=11342) |
-- 作者:hungrytiger -- 发布时间:10/27/2004 5:13:00 PM -- 请教一个xml转换的问题!急!!!万分感谢 源文件格式: <root> <indexdata> <ID>001</ID> <Name>A</Name> </indexdata> <indexdata> <ID>001</ID> <Name>B</Name> </indexdata> <indexdata> <ID>002</ID> <Name>C</Name> </indexdata> <indexdata> <ID>002</ID> <Name>D</Name> </indexdata> </root> 要转换成以下格式: <root> <data> <ID>001</ID> <Name>A;B</Name> </data> <data> <ID>002</ID> <Name>C;D</Name> </data> </root> |
-- 作者:doubleG -- 发布时间:10/27/2004 6:02:00 PM -- 分下组就可以了啊。 <?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="UTF-8" version="1.0"/> <xsl:key name="IDKey" match="ID" use="text()"/> <xsl:template match="/"> <xsl:element name="root"> <xsl:for-each select="//ID[generate-id(.)=generate-id(key('IDKey',text()))]"> <xsl:variable name="IDValue" select="."/> <xsl:element name="data"> <xsl:element name="ID"> <xsl:value-of select="."/> </xsl:element> <xsl:element name="Name"> <xsl:for-each select="//Name[../ID=$IDValue]"> <xsl:if test="position() > 1"> <xsl:text >;</xsl:text> </xsl:if> <xsl:value-of select="."/> </xsl:for-each> </xsl:element> </xsl:element> </xsl:for-each> </xsl:element> </xsl:template> </xsl:stylesheet> |
-- 作者:hungrytiger -- 发布时间:10/27/2004 6:48:00 PM -- 搞定.谢谢! |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
47.363ms |