数据库表的结构为三表:科表Family, 属表Genus, 物种表Species

查询生成XML文档的SQL代码:

--两张表链接查询科、属生成XML文件
SELECT Family.FamilyName, Genus.GenusName
FROM Family
JOIN Genus ON Family.FamilyID = Genus.FamilyID
ORDER BY Family.FamilyName, Genus.GenusName
FOR XML AUTO, ROOT('Taxon')
 
 
 
 
--三张表科、属、种关联查询生成XML文件
SELECT  Family.FamilyName,
        Genus.GenusName,
        Species.AbbreviateName
FROM    Family
        INNER JOIN Genus ON Family.FamilyID = Genus.FamilyID
        INNER JOIN Species ON Genus.GenusID = Species.GenusID
        WHERE dbo.Family.FamilyName='Apiaceae'
        ORDER BY FamilyName,GenusName,AbbreviateName
FOR     XML AUTO,
            ROOT('Taxon')

所生成的XML文档示例:

?xml version="1.0" encoding="UTF-8"?>
<Taxon>
  <Family FamilyName="Apiaceae">
    <Genus GenusName="Acronema">
      <Species AbbreviateName="Acronema alpinum" />
      <Species AbbreviateName="Acronema astrantiifolium" />
      <Species AbbreviateName="Acronema brevipedicellatum" />
      <Species AbbreviateName="Acronema chienii" />
      <Species AbbreviateName="Acronema chienii var. dissectum" />
      <Species AbbreviateName="Acronema chinense" />
      <Species AbbreviateName="Acronema chinense var. humile" />
      <Species AbbreviateName="Acronema commutatum" />
      <Species AbbreviateName="Acronema edosmioides" />
      <Species AbbreviateName="Acronema forrestii" />
      <Species AbbreviateName="Acronema gracile" />
      <Species AbbreviateName="Acronema graminifolium" />
      <Species AbbreviateName="Acronema handelii" />
      <Species AbbreviateName="Acronema hookeri" />
      <Species AbbreviateName="Acronema hookeri var. graminifolium" />
      <Species AbbreviateName="Acronema minus" />
      <Species AbbreviateName="Acronema muscicola" />
      <Species AbbreviateName="Acronema nervosum" />
      <Species AbbreviateName="Acronema paniculatum" />
      <Species AbbreviateName="Acronema schneideri" />
      <Species AbbreviateName="Acronema sichuanense" />
      <Species AbbreviateName="Acronema tenerum" />
      <Species AbbreviateName="Acronema xizangense" />
      <Species AbbreviateName="Acronema yadongense" />
    </Genus>
    <Genus GenusName="Aegopodium">
      <Species AbbreviateName="Aegopodium alpestre" />
      <Species AbbreviateName="Aegopodium alpestre f. scabrum" />
      <Species AbbreviateName="Aegopodium alpestre f. tenerum" />
      <Species AbbreviateName="Aegopodium alpestre f. tenuisectum" />
      <Species AbbreviateName="Aegopodium alpestre var. daucifolium" />
      <Species AbbreviateName="Aegopodium anthriscoides" />
      <Species AbbreviateName="Aegopodium brachycarpum" />
      <Species AbbreviateName="Aegopodium handelii" />
      <Species AbbreviateName="Aegopodium henryi" />
      <Species AbbreviateName="Aegopodium latifolium" />
      <Species AbbreviateName="Aegopodium tadshikorum" />
    </Genus>
    <Genus GenusName="Aethusa">
      <Species AbbreviateName="Aethusa leptophylla" />
    </Genus>
    <Genus GenusName="Albertia">
      <Species AbbreviateName="Albertia commutata" />
    </Genus>
    <Genus GenusName="Ammi">
      <Species AbbreviateName="Ammi copticum" />
      <Species AbbreviateName="Ammi ehrenbergii" />
      <Species AbbreviateName="Ammi majus" />
      <Species AbbreviateName="Ammi visnaga" />
    </Genus>
    <Genus GenusName="Anethum">
      <Species AbbreviateName="Anethum foeniculum" />
      <Species AbbreviateName="Anethum graveolens" />
      <Species AbbreviateName="Anethum graveolens subsp. sowa" />
      <Species AbbreviateName="Anethum japonicum" />
      <Species AbbreviateName="Anethum pannorium" />
      <Species AbbreviateName="Anethum pastinaca" />
      <Species AbbreviateName="Anethum sowa" />
    </Genus>
......
</Taxon>

执行代码:

   1:  using System;
   2:  using System.Web.UI.WebControls;
   3:  using System.Xml;
   4:   
   5:  public partial class Default2 : System.Web.UI.Page
   6:  {
   7:      private string xmlFilePath = @"c:\Data\Apiaceae.xml";
   8:      protected void Page_Load(object sender, EventArgs e)
   9:      {
  10:          XmlDocument doc = new XmlDocument();
  11:          doc.Load(xmlFilePath);
  12:          TreeNode root = new TreeNode(doc.DocumentElement.Name);
  13:          TreeView1.Nodes.Add(root);
  14:          foreach (XmlNode familynode in doc.DocumentElement.ChildNodes)
  15:          {
  16:              TreeNode family = new TreeNode("Family: " + familynode.Attributes["FamilyName"].Value + " (" + familynode.ChildNodes.Count.ToString() + ")");
  17:              root.ChildNodes.Add(family);
  18:              if (familynode.HasChildNodes)
  19:              {
  20:                  foreach (XmlNode genusnode in familynode.ChildNodes)
  21:                  {
  22:                      TreeNode n2 = new TreeNode("Genus: " + genusnode.Attributes["GenusName"].Value+" ("+genusnode.ChildNodes.Count.ToString()+")");
  23:                      family.ChildNodes.Add(n2);
  24:                      if (genusnode.HasChildNodes)
  25:                      {
  26:                          foreach (XmlNode speciesnode in genusnode.ChildNodes)
  27:                          {
  28:                              TreeNode n3=new TreeNode("Species: "+speciesnode.Attributes["AbbreviateName"].Value);
  29:                              n2.ChildNodes.Add(n3);
  30:                          }
  31:                      }
  32:                  }
  33:              }
  34:          }
  35:      }
  36:  }

执行结果:

转载于:https://www.cnblogs.com/apiaceae/archive/2009/04/30/1447075.html

科属种XML文档三级树状图浏览的实现相关推荐

  1. Java使用POI生成饼状图导出到word文档(饼状图)

    本篇文章主要介绍,如何使用Apache POI组件生成饼状图导出到word文档中,具体步骤看下文. 一.实现效果 Java使用POI技术生成饼状图导出到word文档中,最终生成的饼状图如下所示: 二. ...

  2. html 文档的树状结构图,Word文档如何插入树状结构图?

    回答: 1.在"绘图"工具栏上,单击"插入组织结构图或其它图示",如图1所示. 2.在接着出现的"图示库"中选择"用于显示层次关系 ...

  3. XML——解析XML文档

    [0]README 0.1)本文描述 转自 core java volume 2, 旨在理解 XML--解析XML文档 的基础知识: 0.2) for source code, please visi ...

  4. xml与oracle对比,Oracle XML DB和DB2 pure XML在XML文档存储查询性能方面的比较分析

    0引言随着互联网和信息化技术的快速发展,医院在逐步完成医院信息数字化建设过程中,它的核心技术之一就是电子病历的数字化管理和应用.电子病历包括病人就诊或治疗的全部临床信息,这些信息一般由数字.文字.图形 ...

  5. C#中XmlDocument读取和创建 XML 文档

    系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非 ...

  6. 大杂烩 -- 四种生成和解析XML文档的方法详解

    基础大杂烩 -- 目录 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J DOM:在现在的Java JDK里都自带了,在xml-apis.jar包 ...

  7. XML文档定义有几种方式?它们之间有何本质区别?解析XML文档有哪几种方式?

    XML文档定义方式:有两种定义形式,dtd文档类型定义和schema模式 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的) 普通区别: 1.s ...

  8. 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

    众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...

  9. XML文档处理(树的应用)

    1.问题陈述 设计一个关于XML文档存取的类库,按树的方式处理XML文档,实现对树形文档进行一些基本操作的功能. 2.基本要求 内部要求: XML文档可一次全部读入内存后处理.至少设置文档类.XML元 ...

最新文章

  1. 【微信小程序之画布】一:canvas组件
  2. C#实现php的hash_hmac函数
  3. 我为什么用ES做Redis监控,不用Prometheus或Zabbix?
  4. php lvs,LVS(四)LVS集群DR模式
  5. linux下如何使用USB转串口设备
  6. php组合查询,PHP组合查询多条件查询实例代码第1/2页
  7. 想成领袖?先瞄准老板身边的位置
  8. npm以及gulp相关操作
  9. R语言含中文数据导入的方法
  10. 【理解】 Error 10053和 Error 10054
  11. 控制手机 滑动 蓝牙hid_米家LED灯泡蓝牙Mesh版,助你打造温馨的智能家庭
  12. 当我们谈论深度学习时,我们在谈论什么?
  13. Caffe学习:使用pycaffe定义网络
  14. 手把手BC26模组OpenCPU开发之旅-1.简介
  15. CSS形成圆、平行四边形、菱形、梯形、饼图
  16. 史上最全超级金融知识(珍藏版)
  17. 图片在section上下居中_给0~1岁的新媒体人:公众号怎么配图?免费图片哪里找?...
  18. Tensorflow训练的模型,如何保存与载入?
  19. [160CRACKME]Chafe.2
  20. 推特狗狗档案数据集清洗分析及可视化

热门文章

  1. 以太网交换机MAC地址表格式 IVL和SVL
  2. el-pagination分页自定义前往第几页样式(下拉框形式)
  3. 1.WebService
  4. Python:实现reverse letters反向字母算法(附完整源码)
  5. 九九乘法表居中c语言,JavaScript实现九九乘法表的简单实例
  6. 分享几个不错的流程图制作网站
  7. 有关电脑的英语单词(英汉对照)
  8. 京东云 linux无法远程,问题解读 | Linux系统SSH无法远程登录时该怎么办?这里有篇小攻...
  9. Keil出现Error:Flash Download failed - Could not load file
  10. CG100具体功能介绍