帮忙写一个xml格式转换的xslt

coldljy 2006-06-22 12:24:46
原始格式:
<users>
<user>
<name>aaa</name>
<groupid>1</groupid>
</user>
<user>
<name>aaa</name>
<groupid>2</groupid>
</user>
...
</users>

要求转换成:
<users>
<user>
<name>aaa</name>
<groupids>
<groupid>1</groupid>
<groupid>2</groupid>
</groupids>
</user>
</users>

含义:同一个用户属于多个组,把组标识整到一起,并为用户的子元素。
...全文
331 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
coldljy 2006-06-23
  • 打赏
  • 举报
回复
另外开个帖子,请两位光临:
http://community.csdn.net/Expert/topic/4838/4838237.xml?temp=.7225458
coldljy 2006-06-23
  • 打赏
  • 举报
回复
多谢多谢!
Arxi 2006-06-22
  • 打赏
  • 举报
回复
帮你up~~
Qiaorui 2006-06-22
  • 打赏
  • 举报
回复
如果除了groupid的值有变化外,user下各元素一一对应,那只需在3楼代码的基础上增加相应的元素即可。
如,原代码为:
<name><xsl:value-of select="./name"/></name>
其下增加age等:
<age><xsl:value-of select="./age"/></age>
当然了,如果两个user之间,有的有<sex>,有的没有,做个简单的判断即可。
licry01 2006-06-22
  • 打赏
  • 举报
回复
这样的话还真有点难弄了...................
coldljy 2006-06-22
  • 打赏
  • 举报
回复
非常感谢licry01(龙) ,测试了一下,完全通过。不过我的应用还有点问题,就是原xml里user其实还有些子元素,类似这样:
<user>
<name>aaa</name>
<age>20</age>
...
<groupid>1</groupid>
</user>
<user>
<name>aaa</name>
<age>20</age>
...
<groupid>2</groupid>
</user>

两个完全一样,要求也能转换过去。
licry01 2006-06-22
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >

<xsl:output method="xml" indent="yes"/>
<xsl:key name="name-search" match="user" use="name"/>

<xsl:template match="/users">
<users>
<xsl:for-each select="user[ generate-id() = generate-id( key('name-search',name )[1])]">
<xsl:sort select="./name" />
<user>
<name>
<xsl:value-of select="./name"/>
</name>
<groupids>
<xsl:call-template name="Groups">
<xsl:with-param name="uname" select="./name" />
</xsl:call-template>
</groupids>
</user>
</xsl:for-each>
</users>
</xsl:template>

<xsl:template name="Groups">
<xsl:param name="uname" />

<xsl:for-each select="//user[ ./name = $uname ]">
<xsl:sort select="./groupid" />
<groupid>
<xsl:value-of select="./groupid"/>
</groupid>
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>

8,909

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧