以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  [求助]???如何用XSL将一个XML转成另一个XML???  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=11578)


--  作者:ss830103
--  发布时间:11/4/2004 4:05:00 PM

--  [求助]???如何用XSL将一个XML转成另一个XML???
比如下面这个问题:
<Recordset>
<Record>
<id>41</id>
<dwmc>北京某贸易公司</dwmc>
<zs>海淀中关村</zs>
</Record>
<Record>
<id>42</id>
<swdjh>987654321098765</swdjh>
<dwmc>某科贸公司</dwmc>
<zs>朝阳三元桥</zs>
</Record>
</Recordset>

如何用XSL将上述XML转换成下面这个XML

<Recordset>
<dwmc>北京某贸易公司
<Record>
<id>41</id>
<zs>海淀中关村</zs>
</Record>
</dwmc>
<dwmc>某科贸公司
<Record>
<id>42</id>
<swdjh>987654321098765</swdjh>
<zs>朝阳三元桥</zs>
</Record>
</dwmc>
</Recordset>


--  作者:孤独
--  发布时间:11/4/2004 6:37:00 PM

--  
直接在xsl里面打元素名称就可以啦...其实xslt默认的转换对象就是xml,只不过有些解析器自做多情遇到html元素改成转换成html文档而已
--  作者:doubleG
--  发布时间:11/4/2004 7:37:00 PM

--  
不明白为什么把结构好的xml转成这样看的不爽的结构:
<?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" version="1.0" encoding="UTF-8"/>
<xsl:template match="Recordset">
 <xsl:copy  >
  <xsl:for-each select="Record">
   <xsl:element name="dwmc">
    <xsl:value-of select="dwmc"/>
    <xsl:apply-templates select="."/>
   </xsl:element>   
  </xsl:for-each>
 </xsl:copy>
</xsl:template>
<xsl:template match="Record">
  <xsl:element name="{name(.)}">
   <xsl:for-each select="child::*">
    <xsl:call-template name="setElem"/>
   </xsl:for-each>
  </xsl:element>
</xsl:template>
<xsl:template name="setElem">
 <xsl:if test="name()!='dwmc'">
  <xsl:element name="{name(.)}">
   <xsl:value-of select="."/>
  </xsl:element>
 </xsl:if>
</xsl:template>
</xsl:stylesheet>

--  作者:ss830103
--  发布时间:11/5/2004 9:14:00 AM

--  
楼上,结果怎么还是以html显示的?我的意思是要用XML显示结果,XML的声明是这样写吗?
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="file1.xsl"?>

我要的结果像下面这样显示:
-<Recordset>
 -<dwmc>北京某贸易公司
   -<Record>
    <id>41</id>
    <zs>海淀中关村</zs>
    </Record>
    </dwmc>
 -<dwmc>某科贸公司
   -<Record>
    <id>42</id>
    <swdjh>987654321098765</swdjh>
    <zs>朝阳三元桥</zs>
    </Record>
  </dwmc>
 </Recordset>


--  作者:doubleG
--  发布时间:11/5/2004 10:54:00 AM

--  
直接用IE是看不到的,你用XSLTemplate什么的转化一下就能看到了,或者用xmlspy的xsl debug功能也能看得到。
--  作者:射雕英雄
--  发布时间:11/9/2004 3:12:00 PM

--  
也不知道你想转化成什么样子的。
  如果要用表格的形式,我觉得这样可以吧。
<?xml version="1.0" encoding="gb2312"?>
<html xmlns:"http://www.w3.org">
  <body>
    <table>
        <tr>
       <th>dwmc</th>
      <td><xml:value-of select="dwnc"> </td>
      <th>id</th>
      <td><xml:value-of select="id"></td>
       <th>zs</th>
      <td><xml:value-of select="zs"></td>
  </tr>
   后面与其类似,你可以自己试着整一下好吧。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.003ms