⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0903-0100.htm

📁 xml帮助文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            <P>&nbsp; ’查询数据库<BR>&nbsp; sqlStr = "select * from 
            clientList"<BR>&nbsp; set cConn = 
            Server.CreateObject("ADODB.Connection")<BR>&nbsp; cConn.Open 
            "CLIENTS","sa", ""<BR>&nbsp; set rsData = 
            cConn.Execute(sqlStr)<BR>&nbsp; rsData.MoveFirst()</P>
            <P>&nbsp; while (not rsData.EOF )<BR>&nbsp;&nbsp;&nbsp; 
            ’构建联系人子节点<BR>&nbsp;&nbsp;&nbsp; set tmpNode = 
            xmlDoc.createNode("element","联系人","")<BR>&nbsp;&nbsp;&nbsp; 
            xmlDoc.documentElement.appendChild(tmpNode)<BR>&nbsp;&nbsp;&nbsp; 
            ’构建姓名、ID、公司、Email子节点<BR>&nbsp;&nbsp;&nbsp; for I = 0 to 
            rsData.Fields.Count - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set 
            childNode = 
            xmlDoc.createNode("element",rsData.Fields(i).Name,"")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            childNode.text = rsData.Fields(i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            tmpNode.appendChild(childNode)<BR>&nbsp;&nbsp;&nbsp; 
            next<BR>&nbsp;&nbsp; rsData.MoveNext()<BR>&nbsp; wend</P>
            <P>&nbsp; 
      Response.Write(xmlDoc.xml)<BR>%&gt;</P></TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>运行该ASP,将生成下面的XML文档。</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;?xml version = "1.0" encoding="GB2312" 
            standalone = "no"?&gt;<BR><BR>&lt;联系人列表&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;姓名&gt;张三&lt;/姓名&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;ID&gt;1&lt;/ID&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;公司&gt;A公司&lt;/公司&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;EMAIL&gt;zhang@aaa.com&lt;/EMAIL&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;/联系人&gt;<BR><BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;姓名&gt;李四&lt;/姓名&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;ID&gt;2&lt;/ID&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;公司&gt;B公司&lt;/公司&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;EMAIL&gt;li@bbb.org&lt;/EMAIL&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;/联系人&gt;<BR>&lt;/联系人列表&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>通过调用XML 
      DOM动态生成XML文档似乎有些繁琐,下面再看一段代码,这段代码是根据前面所描述的DTD(Schema)规则来生成最终的XML实例文档,也即,最终文档的结构是由程序代码来控制的。</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;% Response.ContentType="text/xml" 
            %&gt;<BR>&lt;?xml version="1.0" encoding="GB2312" 
            ?&gt;<BR>&lt;联系人列表&gt;<BR><BR>&lt;% Set cConn = 
            Server.CreateObject("ADODB.Connection")<BR>&nbsp;&nbsp; cConn.Open 
            "CLIENTS","sa", ""<BR>&nbsp;&nbsp; Set rsData = 
            cConn.Execute("select * from clientList")<BR>&nbsp;&nbsp; do while 
            not rsData.Eof<BR>%&gt;<BR>&lt;联系人&gt;<BR>&nbsp; 
            &lt;姓名&gt;&lt;%=rsData("Name")%&gt;&lt;/姓名&gt;<BR>&nbsp; 
            &lt;ID&gt;&lt;%=rsData("ID")%&gt;&lt;/ID&gt;<BR>&nbsp; 
            &lt;公司&gt;&lt;%=rsData("Company")%&gt;&lt;/公司&gt;<BR>&nbsp; 
            &lt;Email&gt;&lt;%=rsData("Email")%&gt;&lt;/Email&gt;<BR>&lt;/联系人&gt;<BR>&lt;% 
            rsData.MoveNext<BR>&nbsp;&nbsp; Loop<BR>&nbsp;&nbsp; 
            rsData.Close<BR>&nbsp;&nbsp; Set rsData = 
            nothing<BR>%&gt;<BR><BR>&lt;/联系人列表&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>运行该ASP,将直接在浏览器显示XML文档,内容同前面得到的结果相同。<BR><BR>在上面的示例中,我们看到的是如何通过自定义文档结构生成XML实例文档。显然,这种方案存在一个前提,那就是,开发者必须了解文档结构,并且通过编程严格控制输出文档的格式。但细心的读者可能会产生疑问:既然数据已经存储在数据库中,又何必大费周折重新定义一遍文档结构呢?XML的自描述性何在?为了解决这个问题,微软将其ADO技术进行了扩展以提供对XML的更大支持,结果是可以根据数据库表的内在结构直接输出XML文档,文档的格式将符合默认的DTD定义。下面是一个用Visual 
      Basic 6.0编写的实例:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">’声明连接和结果集<BR>Dim cConn As ADODB.Connection<BR>Dim 
            rsData As ADODB.Recordset
            <P>Private Sub Form_Load()<BR>&nbsp; ’连接数据库<BR>&nbsp; Dim query As 
            String<BR>&nbsp; Set cConn = New ADODB.Connection<BR>&nbsp; 
            cConn.ConnectionString = "DSN=nwind;UID=sa;PWD=;"<BR>&nbsp; 
            cConn.Open</P>
            <P>&nbsp; ’执行数据库查询<BR>&nbsp; query = "Select * FROM 
            clientList"<BR>&nbsp; Set rsData = cConn.Execute(query)</P>
            <P>&nbsp; ’将数据库返回结果集保存至文件<BR>&nbsp; On Error Resume 
            Next<BR>&nbsp;&nbsp;&nbsp; Kill ("recordset.xml")<BR>&nbsp; 
            rsData.Save "output.xml", adPersistXML<BR>End 
      Sub</P></TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>下面给出的是该程序执行后生成的XML文档--output.xml。通过分析,可以发现,它实际上是一个内嵌XML 
      Schema的XML实例文档。该实例文档的主元素是&lt;rs:data&gt;,命名空间rs由xmlns:rs=’urn:schemas-microsoft-com:rowset’定义;数据库查询返回的每一条记录都作为&lt;rs:data&gt;的一个子元素,用&lt;z:row&gt;表示。&lt;z:row&gt;子元素实际上是空元素,信息均以属性的方式体现,属性来自于返回的数据库字段。内嵌的Schema部分&lt;s:Schema 
      id=’RowsetSchema’&gt;定义了元素&lt;row&gt;的组织结构和规则。</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;xml 
            xmlns:s=’uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882’<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
            xmlns:dt=’uuid:C2F41010-65B3-11d1-A29F-00AA00C14882’<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
            xmlns:rs=’urn:schemas-microsoft-com:rowset’<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
            xmlns:z=’#RowsetSchema’<BR>&gt;
            <P>&lt;s:Schema id=’RowsetSchema’&gt;<BR>&nbsp; &lt;s:ElementType 
            name=’row’ content=’eltOnly’&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;s:attribute type=’Name’/&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;s:attribute type=’ID’/&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;s:attribute 
            type=’Company’/&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;s:attribute 
            type=’Email’/&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;s:extends 
            type=’rs:rowbase’/&gt;<BR>&nbsp; &lt;/s:ElementType&gt;</P>
            <P>&nbsp; &lt;s:AttributeType name=’Name’ rs:number=’1’ 
            rs:nullable=’true’ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            rs:write=’true’&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;s:datatype 
            dt:type=’string’ dt:maxLength=’10’/&gt;<BR>&nbsp; 
            &lt;/s:AttributeType&gt;</P>
            <P>&nbsp; &lt;s:AttributeType name=’ID’ rs:number=’2’ 
            rs:nullable=’true’ rs:write=’true’&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;s:datatype dt:type=’int’/&gt;<BR>&nbsp; 
            &lt;/s:AttributeType&gt;</P>
            <P>&nbsp; &lt;s:AttributeType name=’Company’ rs:number=’3’ 
            rs:nullable=’true’ rs:write=’true’&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;s:datatype dt:type=’string’ dt:maxLength=’20’/&gt;<BR>&nbsp; 
            &lt;/s:AttributeType&gt;</P>
            <P>&nbsp; &lt;s:AttributeType name=’Email’ rs:number=’4’ 
            rs:nullable=’true’ rs:write=’true’&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;s:datatype dt:type=’string’ dt:maxLength=’20’/&gt;<BR>&nbsp; 
            &lt;/s:AttributeType&gt;<BR>&lt;/s:Schema&gt;</P>
            <P>&lt;rs:data&gt;<BR>&nbsp; &lt;z:row Name=’张三’ ID=’1’ 
            Company=’A公司’ Email=’zhang@aaa.com’/&gt;<BR>&nbsp; &lt;z:row 
            Name=’李四’ ID=’2’ Company=’B公司’ 
            Email=’li@bbb.org’/&gt;<BR>&lt;/rs:data&gt;<BR>&lt;/xml&gt;</P></TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>ADO提供了文档保存功能,通过它,ASP可以将数据库返回结果集保存至XML文件,这些XML文件经由XSL样式化后可以在浏览器直接显示,也可以传输至其他应用系统供再次利用。另外,值得一提的是,微软在其ADO2.5和IIS5.0中又增加了更高级的支持,即,可以将数据库返回的结果直接转换为XML在浏览器中显示,而不必先保存至文件。下面的实例片段有力地说明了这一点:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;%<BR>&nbsp; Set rsData = 
            Server.CreateObject("ADODB.Recordset")<BR>&nbsp; 
            Response.ContentType="text/xml"
            <P>&nbsp; rsData.Open "select * from clientList", "File Name=" &amp; 
            Server.MapPath("ado.udl")<BR>&nbsp; rsData.Save Response, 
            adPersistXML<BR>&nbsp; rsData.Close<BR>&nbsp; Set cConn = 
            nothing<BR>%&gt;</P></TD></TR></TBODY></TABLE></CENTER></DIV></DIV>
      <P></P>
      <P></P></TD></TR></TBODY></TABLE>
  </center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -