Vb教程 Vb.net教程 Vfp教程 C/C++教程 Vc/Vc++教程 Delphi教程 Java教程 Powerbuilder
  杀毒频道 | 短信频道 | 网络电视 | 论文中心 | 学上网 | 学软件 | 网页特效 | 电脑基础 | 论坛  
  NCRE | 软考 | CET | 职称英语 | 司法考试 | 报关员 | 公务员 | CATTI | CPA考试  
  Html教程 | Css教程 | Xml教程 | Asp教程 | Asp.net | Php教程 | Jsp教程 | Linux教程 | QQ技巧  
Photoshop Illustrator ImageReady Maya教程 3D Max教程 Lightscape Coredraw教程 Authorware Autocad教程 Freehand教程
Access教程 Mysql教程 Sql server Oracle教程 Word教程 Excel教程 Powerpoint Frontpage Asp.net源码 Php源代码
Flash教程 Fireworks Dreamweaver C#教程 outlook教程 系统安装 vbscript教程 Javascript Jsp源代码 Asp源代码
您的位置:首页 >> xml教程

XML简明教程第10课 :在C++ XML DSO中使用主/细节特征

文章来源:互联网

   什么是主/细节特征?
   新的主/细节特征允许你连接到一个分层纪录集的当前记录上,这就意味着你可以把当前纪录的子元素连接到一个截然不同的表中。例如,考虑一下的XML:
<orders>
  <order order_number="2233">
    <customer>
      <name>John Smith</name>
      <custID>192883</custID>
    </customer>
    <item>
      <name>Fly Swatter</name>
      <price>9.99</price>
    </item>
  </order>
  <order order_number="2234">
    <customer>
      <name>Marea Angela Castaneda</name>
      <custID>827145</custID>
    </customer>
    <item>
      <name>Fly Paper</name>
      <price>15.99</price>
    </item>
  </order>
  <order order_number="2235">
    <customer>
      <name>Amy Jones</name>
      <custID>998022</custID>
    </customer>
    <item>
      <name>Mosquito Netting</name>
      <price>38.99</price>
    </item>
  </order>
</orders>
你可以允许你的用户通过ID来定位订单,并显示(也仅能显示)当前订单上的客户和项目信息,你的用户并不能查看所有订单的信息——仅能查看自己感兴趣的。
如何连接到细节?
连接到层次结构中的底层(细节信息)的关键是了解你的数据的结构,上面的XML在根元素<orders>中含有有三个元素。基于XML DSO所采用的试探法,每一个订单都映射到一个包含"order_number"、 "customer"、 和 "item"等域的行集中。"order_number"列包含"order_number"属性的值,"customer"和"item"列包含指向各自的"customer"和"item"
纪录集的指针。"customer"记录集中包含带有"name"和"custID"域的元素的值,"item"记录集中包含带有"name"和"price"域的元素的值。
这样,在顶层("orders")纪录集中,你可以找到"order_number"的值,然后允许你的用户通过"order_number"定位订单。
<P>ORDER NUMBER: <SPAN DATASRC="#xmlDoc" DATAFLD="order_number"></SPAN></P>
现在再添加几个按钮来帮助用户浏览"orders"纪录集。
<INPUT TYPE=BUTTON value="Previous Order" onclick="xmlDoc.recordset.movePrev
ious()">
<INPUT TYPE=BUTTON value="Next Order" onclick="xmlDoc.recordset.moveNext()">

为了在当前纪录的子元素中检索这个值,创建一张表并把表的 DATASRC 属性设置为"#xmlDoc",就和上面所作的一样,但是这时也要把它的 DATAFLD 属性设置为 "customer"。这是为了告诉表连接到"customer"纪录集中的数据上,而"customer"纪录集由"orders"纪录集中的"customer"域的指针指向。
<TABLE DATASRC="#xmlDoc" DATAFLD="customer" BORDER>
  <THEAD><TH>NAME</TH><TH>ID</TH></THEAD>
  <TR>
    <TD><SPAN DATAFLD="name"></SPAN></TD>
    <TD><SPAN DATAFLD="custID"></SPAN></TD>
  </TR>
</TABLE>
接着对"item"元素作同样的处理。
<TABLE DATASRC="#xmlDoc" DATAFLD="item" BORDER=1>
  <THEAD><TR><TH>ITEM</TH><TH>PRICE</TH></TR></THEAD>
  <TR>
    <TD><SPAN DATAFLD="name"></SPAN></TD>
    <TD><SPAN DATAFLD="price"></SPAN></TD>
  </TR>
</TABLE>
现在,当用户点击按钮并移到纪录集中的后一个或前一个纪录时,表中的数据会相应的改变到当前纪录。

[返回]

编程语言 web开发 数据库 网络技术 操作系统 服务器 网页设计 图形设计 办公软件 常用软件 学电脑

Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved.
关于本站 | 版权声明 | 联系我们 | 友情链接 |
编程入门网 版权所有