以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML源码及示例(仅原创和转载) 』  (http://bbs.xml.org.cn/list.asp?boardid=32)
----  [原创]合并多个XML文件的简单方法 —— 外部实体引用  (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=11955)


--  作者:ksu99
--  发布时间:11/10/2004 3:25:00 PM

--  [原创]合并多个XML文件的简单方法 —— 外部实体引用
http://blog.csdn.net/ksu99/archive/2004/11/10/XMLENTITY.aspx

    下面的例子通过外部实体引用,将文件order1.xml与文件order2.xml合并为一个文件directory.xml

清单1. 要合并的xml文档order1.xml:

<?xml version="1.0" encoding="GB2312"?>

<order>
  <item>
    <itemNumber>ksu-0384</itemNumber>
    <description>LCD液晶显示器</description>
    <quantity>1</quantity>
    <price>358.00</price>
  </item>
    <item>
    <itemNumber>ksu-0511</itemNumber>
    <description>音箱</description>
    <quantity>1</quantity>
    <price>16.50</price>
  </item>
    <item>
    <itemNumber>ksu-7710</itemNumber>
    <description>鼠标</description>
    <quantity>1</quantity>
    <price>8.50</price>
  </item>
</order>

清单2. 要合并的xml文档order2.xml:

<?xml version="1.0" encoding="GB2312"?>

<order>
  <item>
    <itemNumber>ksu-0652</itemNumber>
    <description>双飞燕键盘</description>
    <quantity>1</quantity>
    <price>35.00</price>
  </item>
    <item>
    <itemNumber>ksu-7720</itemNumber>
    <description>intel CPU</description>
    <quantity>1</quantity>
    <price>1650.00</price>
  </item>
    <item>
    <itemNumber>ksu-7010</itemNumber>
    <description>迈拓硬盘</description>
    <quantity>1</quantity>
    <price>850.00</price>
  </item>
</order>

清单3. 输出文档directory.xml,黑体字部分为实体声明及其引用:

<?xml version="1.0"?>
<!DOCTYPE directory [
   <!ENTITY disclaimer1 SYSTEM "./order1.xml">
   <!ENTITY disclaimer2 SYSTEM "./order2.xml">
]>
<directory>
   &disclaimer1;
   &disclaimer2;
</directory>

当符合 XML 1.0 的处理器读取文档时,就会扩展实体,用它的内容代替引用,因此完整的文档如下所示。

清单4. 带有扩展实体的文档显示(IE6中):

  <?xml version="1.0" ?>
  <!DOCTYPE directory (View Source for full doctype...)>
- <directory>
- <order>
  - <item>
     <itemNumber>ksu-0384</itemNumber>
     <description>LCD液晶显示器</description>
     <quantity>1</quantity>
     <price>358.00</price>
    </item>
  - <item>
     <itemNumber>ksu-0511</itemNumber>
     <description>音箱</description>
     <quantity>1</quantity>
     <price>16.50</price>
    </item>
  - <item>
     <itemNumber>ksu-7710</itemNumber>
     <description>鼠标</description>
     <quantity>1</quantity>
     <price>8.50</price>
    </item>
   </order>
- <order>
   - <item>
     <itemNumber>ksu-0652</itemNumber>
     <description>双飞燕键盘</description>
     <quantity>1</quantity>
     <price>35.00</price>
    </item>
  - <item>
     <itemNumber>ksu-7720</itemNumber>
     <description>intel CPU</description>
     <quantity>1</quantity>
     <price>1650.00</price>
    </item>
  - <item>
     <itemNumber>ksu-7010</itemNumber>
     <description>迈拓硬盘</description>
     <quantity>1</quantity>
     <price>850.00</price>
    </item>
   </order>
  </directory>


--  作者:unrulysky
--  发布时间:11/25/2004 4:26:00 PM

--  
支持支持,非常实用.对于应用多篇文章的时候,又要控制单个XML体积的时候很好用.
数据处理的时候怎么办?跟处理单个是一样的吧?
--  作者:xmzhy
--  发布时间:11/25/2004 4:30:00 PM

--  
thank you
--  作者:unrulysky
--  发布时间:11/25/2004 4:37:00 PM

--  
..没法...我绑定后没法直接用第三个XML绑定前两个XML的数据...
--  作者:miki52777
--  发布时间:12/9/2004 4:41:00 PM

--  
这个东西与服务器脚本语言结合起来可以做东西哦。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms