以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (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=60435)


--  作者:mydirector
--  发布时间:3/25/2008 8:38:00 PM

--  关于两个xml合并问题
假设现有两个xml文件分别为:
文件1:
<stu>
     <sno>001</sno>
     <sname>张三</sname>
     <ssex>男</ssex>
     <sadd>某地</sadd>
     <sid>123456789012345</sid>
</stu>
<stu>
     <sno>002</sno>
     <sname>李四</sname>
     <ssex>男</ssex>
     <sadd>某地</sadd>
     <sid>987654321012345</sid>
</stu>
文件2:
<info>
     <sid>123456789012345</sid>
     <sexamid>2008002</sexamid>
</info>
<info>
     <sid>987654321012345</sid>
     <sexamid>2008001</sexamid>
</info>

现在需要把第一个文件中根据<sid>节数据添加自动添加第二个文件地<sexamid>地数据
形成一个新的xml文件,如
<stu>
     <sno>001</sno>
     <sname>张三</sname>
     <ssex>男</ssex>
     <sadd>某地</sadd>
     <sid>123456789012345</sid>
     <sexamid>2008002</sexamid>
</stu>
<stu>
     <sno>002</sno>
     <sname>李四</sname>
     <ssex>男</ssex>
     <sadd>某地</sadd>
     <sid>987654321012345</sid>
     <sexamid>2008001</sexamid>
</stu>
不知道应该怎么做啊

或者在xsl里显示的时候让文件1按照文件2中<sexamid>的顺序进行排序


[此贴子已经被作者于2008-3-25 21:15:38编辑过]

--  作者:Qr
--  发布时间:3/26/2008 3:44:00 PM

--  
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" version="1.0" encoding="gb2312" indent="yes"/>
<xsl:variable name="temp" select="document('文件2')//info"/>
<xsl:template match="/">
<root>
 <xsl:apply-templates select="//stu" />
</root>
</xsl:template>

<xsl:template match="stu">
 <xsl:variable name="id" select="sid"/>
 <stu>
  <xsl:copy-of select="*"/>
  <xsl:copy-of select="$temp[sid=$id]/sexamid"/>
 </stu>
</xsl:template>

</xsl:stylesheet>


运行结果如图:
此主题相关图片如下:
按此在新窗口浏览图片


--  作者:fangel2000
--  发布时间:4/1/2008 8:43:00 PM

--  
请教QR,两个文档的合并问题,我刚看懂了
但是对于很多个文档的合并呢?我现在估计是有几十个文档
麻烦再指点一下
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms