å°XMLæ°æ®ç»åè¿ASPåºç¨ç¨åºçæ¶åï¼éè¦åç第ä¸ä»¶äºæ¯è®¿é®XMLæä»¶çå 容ã仿æ¯ä¸æ¥è¯´ï¼å¨ASPç¯å¢ä¸ï¼è¯»å ¥å¹¶ç®¡çXMLææ¬çä¸»è¦æ¹æ³æä¸ç§ï¼
å建MSXML对象ï¼å¹¶ä¸å°XMLææ¡£è½½å ¥DOMï¼
ä½¿ç¨æå¡å¨ç«¯åµå ¥ï¼Server-Side Includeï¼SSIï¼ï¼
å°±å¦å访é®å ¶ä»ææ¬æä»¶ä¸æ ·ï¼ä½¿ç¨FileSystemObjectæ¥è®¿é®XMLææ¡£ï¼
第åç§æ¹æ³æ¯å¨å®¢æ·ç«¯å建å ç½®çæ°æ®å²ï¼æå ³çå 容以å讲解ã
ä¸ã使ç¨DOM
为äºå¨ASP代ç ä¸ä½¿ç¨DOMï¼éè¦å建ä¸ä¸ªMicrosoft XMLåæå¨çå®ä¾ï¼å®åä»»ä½å«çCOMç»ä»¶ä¸æ ·è¢«å®ä¾åï¼å¨é¡µé¢çå¼å§å¤é¡¼è¦å¢å å è¡æ å代ç ãè¿äºä»£ç å建ä¸ä¸ªåæå¨å®ä¾ï¼å è½½XMLææ¡£è³DOMï¼å¹¶ä¸å°æ ¹å ç´ ï¼å³ææ¡£å ç´ ï¼è®¾ç½®ä¸ºå½åèç¹ã
âInstatiate the XML Processor
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
'Load the XML Document
objXML.load(Server.MapPath("mydata.xml")
'Set the Document Element
Set objRootElement = objXML.documentElement
å¨XMLææ¡£è¢«å è½½ä¹åï¼è¿éè¦æ§è¡ç¬¬åæ¥ï¼å³è®¾ç½®validateOnParse屿§ä¸ºTrueï¼è¿å¯ç¡®ä¿è¢«å è½½çææ¡£ä¸ºææçXMLææ¡£ãè¿å¯é¿å åé¢éå°çåç§éº»ç¦ï¼
'Instatiate the XML Processor
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
'The processos should validate the document
objXML.validateOnParse = True
'Load the XML Document
objXML.load(Server.MapPath("mydata.xml")
'Set the Document Element
Set objRootElement = objXML.documentElement
æåï¼è¿æä¸ä¸ªå¯éæ¥éª¤ï¼å®ä¹æ¯åºç°å¨å è½½ä¹åãå®è¦æ±åæ¥å è½½æä»¶ï¼
objXML.async = false
è¿è¯´æ¶å 载并éªè¯ä¸ä¸ªç¸å½å¤§çæä»¶éè¦å ç¨ä¸äºæ¶é´ãå¦ä¸ç§æ¿æ¢æ¹æ¡æ¯å¿½ç¥è¿ä¸æ¥ï¼å 许é忥å è½½ï¼è¿æ¯ç¼ºçæ åµï¼ä¸æ¦å®æè¿äºåå§åæ¥éª¤ï¼XMLææ¡£å°±è¢«å è½½ï¼å¹¶ä¸å好äºè¢«å¤ççåå¤ãDOMææéè¦çåè½é½æ¯å¯é ç½®çã
å½ç¶ï¼å°±å¦åä»»ä½COMå¯¹è±¡ä¸æ ·ï¼å¨ä½¿ç¨å®ä¹åï¼è¯·è®°ä½å¿ 须鿝å®ï¼
Set objXML = nothing
äºãæå¡å¨ç«¯åµå ¥
æå¡å¨ç«¯åµå ¥å¯ç¨äºå°XMLææ¡£ä»£ç æå ¥ASP页é¢ã
ä¸ãç¨ASP代ç å¤çXMLç示ä¾
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
 Dim sourceFile,source,rootElement,HTMLCode
 sourceFile = Request.ServerVariables("APPL_PHYSICAL_PATH") & "xml/contacts.xml"
 set source = Server.CreateObject("Microsoft.XMLDOM")
 source.async = false
 source.load sourceFile
 set rootElement = source.documentElement
 HTMLCode = HTMLCode & "<font size=4
 HTMLCode = HTMLCode & rootElement.childNodes(0).text
 HTMLCode = HTMLCode & "</font><p></p><font size=3
 HTMLCode = HTMLCode & rootElement.childNodes(0).text
 HTMLCode = HTMLCode & "</I></font><p></p><font size=3
 HTMLCode = HTMLCode & rootElement.childNodes(0).text
 HTMLCode = HTMLCode & "</font><p></p>"
 response.write(HTMLCode)
 set source = nothing
%>
</BODY>
</HTML>
contacts.xml
<?xml version="1.0" ?>
<CONTACT_INFO>
 <CONTACT>
  <NAME>JOHN</NAME>
  <PHONE>111-1111-111</PHONE>
 </CONTACT>
 <CONTACT>
  <NAME>SMITH</NAME>
  <PHONE>222-2222-222</PHONE>
 </CONTACT>
 <CONTACT>
  <NAME>MIKE</NAME>
  <PHONE>333-3333-333</PHONE>
 </CONTACT>
</CONTACT_INFO>
ç»XSLæ ¼å¼åçXMLæ°æ®
styleContact.asp
<HTML>
 <BODY>
<%
  sourceFile = server.mapPath("contact.xml")
  styleFile = server.mapPath("contact.xsl")
  set source = Server.CreateObject("Microsoft.XMLDOM")
  source.async = False
  source.load(sourceFile)
  set style = Server.CreateObject("Microsoft.XMLDOM")
  style.async = False
  style.load(styleFile)
  response.write(source.transformNode(style))
%>
 </BODY>
</HTML>
contact.xml
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="contact.xsl" target="_blank" rel="external nofollow" ?>
<CONTACT_INFO>
 <CONTACT>
  <NAME>ZHOU.ZF</NAME>
  <PHONE>11111111111</PHONE>
 </CONTACT>
 <CONTACT>
  <NAME>LISTEN</NAME>
  <PHONE>22222222222</PHONE>
 </CONTACT>
 <CONTACT>
  <NAME>BUBU</NAME>
  <PHONE>33333333333</PHONE>
 </CONTACT>
</CONTACT_INFO>
contact.xsl
<?xml version="1.0" ?>
<xsl:template xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 <HTML>
  <BODY>
   <xsl:for-each select="CONTACT_INFO/CONTACT">
    <DIV>
     <xsl:value-of select="NAME"/>
    </DIV>
   </xsl:for-each>
  </BODY>
 </HTML>
</xsl:template>
å ¶å®ç¤ºä¾ï¼
1ãWEB龿¥
<HTML>
<BODY>
<%
Dim objXML, objRootElement, strLinkName, strLinkURL, strLinkTarget, sourceFile, i
sourceFile = Request.ServerVariables("APPL_PHYSICAL_PATH") & "xml/Links.xml"
set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.validateOnParse = True
objXML.async = false
objXML.load(sourceFile)
set objRootElement = objXML.documentElement
for i = 0 to objRootElement.childNodes.length-1
 strLinkName = objRootElement.childNodes.item(i).text
 strLinkURL = objRootElement.childNodes.item(i).getAttribute("url")
 strLinkTarget = objRootElement.childNodes.item(i).getAttribute("target")
 response.write("<a href=" & strLinkURL & " target="_blank" rel="external nofollow" target=" & strLinkTarget & ">" & strLinkName & "</a><br>")
next
set objXML = nothing
%>
</BODY>
</HTML>
Links.xml
<?xml version="1.0" ?>
<relatedlinks>
 <link url="default0.asp" target="_blank">Front Page 0</link>
 <link url="default1.asp" target="_blank">Front Page 1</link>
 <link url="default2.asp" target="_blank">Front Page 2</link>
 <link url="default3.asp" target="_blank">Front Page 3</link>
</relatedlinks>
2ãXMLæä»¶ççæ
gen_xml.asp
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Developer Studio">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Generate XML</TITLE>
</HEAD>
<BODY>
<%
 ' Create an empty root node for the document.
 Set rootNode = Server.CreateObject("AspXml.AspXml")
 rootNode.Encoding = "ISO-8859-1"
 rootNode.Standalone = "yes"
 rootNode.Tag = "table"
 for row = 1 to 10
  Set rowNode = rootNode.NewChild("row","")
  for col = 1 to 10
   Set colNode = rowNode.NewChild("column","("&col&","&row&")")
  next
 next
 rootNode.SaveXml(Server.MapPath("table.xml"))
 Set rootNode = Nothing
%>
</BODY>
</HTML>
3ãåXMLæä»¶ä¸è¿½å ç»ç¹
addItem.asp
<%
If request.ServerVariables("REQUEST_METHOD")="POST" Then
 call writeXML
Else
 call showForm
End If
Sub showForm
%>
 <html>
 <body>
  Please enter the persons contact details
  <form action="addItem.asp" method="post">
   Name: <input type="text" name="name"> Email: <input type="text" name="email">
   <input type="submit" name="submit" value="Add">
  </form>
 </body>
 </html>
<%
End Sub
Sub writeXML
 ' find xml file path
 Dim strFilename,strXMLFile
 strFilename = "contacts.xml"
 strXMLFile=server.mapPath(strFilename)
 ' standard "create xml object" code
 set oXML = server.createObject("Microsoft.XMLDOM")
 oXML.async = False
 ' check file exists
 bitFileExists = oXML.load(strXMLFile)
 If bitFileExists Then
  tmpChildnodes = oXML.documentElement.childnodes.length - 1
  intCurrentRecord = tmpChildnodes + 1
 Else
  ' create xml
  oXML.appendChild(oXML.createProcessingInstruction("xml","version=""1.0"""))
  oXML.appendChild(oXML.createElement("contacts"))
  intCurrentRecord = 0
 End If
 ' create record
 set oXMLRec = oXML.createElement("contact")
 'Create an id attribute
 Set oAtt = oXML.createAttribute("id")
 oAtt.Text = intCurrentRecord
 oXMLRec.setAttributeNode oAtt
 ' set remaining fields
 ' name
 oXMLRec.appendChild(oXML.createElement("name"))
 oXMLRec.childnodes(0).text = request.form("name")
 ' email address
 oXMLRec.appendChild(oXML.createElement("email"))
 oXMLRec.childnodes(1).text = request.Form("email")
 ' date stamp
 oXMLRec.appendChild(oXML.createElement("created"))
 oXMLRec.childnodes(2).text = now()
 ' write new record
 oXML.documentElement.appendChild(oXMLRec.cloneNode(True))
 ' save file
 oXML.save strXMLFile
 ' redirect to xml file
 response.redirect(strFilename)
 oXML = nothing
End Sub
%>
contacts.xml
<?xml version="1.0"?>
<CONTACT_INFO>
 <contact id="1">
  <name>bubu</name>
  <email>[email protected]</email>
  <created>2003/04/29 9:26:51</created>
 </contact>
 <contact id="2">
  <name>22222</name>
  <email>222222222</email>
  <created>2003-5-12 18:15:41</created>
 </contact>
</CONTACT_INFO>
4ãçè¨è
<%
username=request.form("username")
if username<>"" then
 fromwhere =request.form("fromwhere")
 homepage =request.form("homepage")
 email =request.form("email")
 text =Server.URLEncode(request.form("text"))
 Posttime =now()
 sourceFile = "list.xml"
 strSourceFile = Server.MapPath(sourceFile)
 Set objXML = Server.CreateObject("Microsoft.XMLDOM")
 blnRet = objXML.load(strSourceFile)
 If blnRet Then
  Set objRootlist = objXML.documentElement
  if objRootlist.hasChildNodes then
   id = objRootlist.lastchild.firstchild.text+1
  else
   id=1
  end if
 Else
  objXML.appendChild(objXML.createProcessingInstruction("xml","version=""1.0"""))
  set objRootlist = objXML.createElement("NewList")
  objXML.appendChild(objRootlist)
  id = 1
 End If
 brstr=chr(13)&chr(10)&chr(9)
 XMLnode=brstr&"<list>"&brstr & _
 "<id>"&id&"</id>"&brstr & _
 "<username>"&username&"</username>"&brstr & _
 "<fromwhere>"&fromwhere&"</fromwhere>"&brstr & _
 "<Posttime>"&Posttime&"</Posttime>"&brstr & _
 "<homepage>"&homepage&"</homepage>"&brstr & _
 "<email>"&email&"</email>"&brstr & _
 "<text>"&text&"</text>"&brstr & _
 "</list>"&chr(13)
 set objXML2=Server.CreateObject("Microsoft.XMLDOM")
 objXML2.loadXML(XMLnode)
 set rootNewNode=objXML2.documentElement
 objRootlist.appendChild(rootNewNode)
 objXML.save(strSourceFile)
 set objXML=nothing
 set objXML2=nothing
 response.redirect(strSourceFile)
end if
%>
<html>
<head>
 <title>Untitled Document</title>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 <style type="text/css">
  <!--
  td { font-size: 9pt}
  -->
 </style>
</head>
<body bgcolor="#0099CC" text="#000000">
 <table width="80%" cellspacing="1" cellpadding="4" align="center" bgcolor="#FFFFFF">
  <form action="PostNew.asp" method="post" name="form1">
   <tr bgcolor="#000000">
    <td colspan="2"><font color="#FFFFFF">New Book</font></td>
   </tr>
   <tr bgcolor="#EFEFEF">
    <td width="19%" align="right">Name:</td>
    <td width="81%">
     <input type="text" name="username">**
    </td>
   </tr>
   <tr bgcolor="#EFEFEF">
    <td width="19%" align="right">ComeFrom:</td>
    <td width="81%">
     <input type="text" name="fromwhere" value="China">
    </td>
   </tr>
   <tr bgcolor="#EFEFEF">
    <td width="19%" align="right">WebSite:</td>
    <td width="81%">
     <input type="text" name="homepage" value="http://">
    </td>
   </tr>
   <tr bgcolor="#EFEFEF">
    <td width="19%" align="right">Email:</td>
    <td width="81%">
     <input type="text" name="email">
    </td>
   </tr>
   <tr bgcolor="#EFEFEF">
    <td width="19%" align="right" valign="top">Context:</td>
    <td width="81%">
     <textarea name="text" cols="60" rows="10"></textarea>
    </td>
   </tr>
   <tr bgcolor="#EFEFEF">
    <td width="19%" align="right"> </td>
    <td width="81%">
     <input type="submit" name="Submit" value="Submit">
     <input type="reset" name="Submit2" value="Reset">
    </td>
   </tr>
  </form>
 </table>
</body>
</html>
åã使ç¨DOMçæXMLæ»ç»
 äºè§£XMLææ¡£å¯¹è±¡æ¨¡å
 XML DOMå å«å个主è¦å¯¹è±¡ï¼XMLDOMDocumentï¼ XMLDOMNodeï¼XMLDOMNodeListåXMLDOMNamedNodeMapãåä»»ä½å ¶å®å¯¹è±¡æ¨¡å䏿 ·ï¼æ¯ä¸ªXML DOM对象æå ¶èªå·±çç¹æ§åæ¹æ³ãæ¬æï¼æä»¬å°ä¸»è¦ä»ç»XMLDOMDocument åXMLDOMNode 对象ã
 Â
 XMLDOMDocument对象
 XMLDOMDocument对象代表XML DOM屿¬¡ä¸çé¡¶å±ç»ç¹(请ä¸è¦åXMLææ¡£ä¸çæ ¹ç»ç¹æ··æ·)ã宿¯å»ºç«åæçºµXMLç»æçåºç¡ã为äºå建XMLDOMDocument对象åéï¼è¯·ä½¿ç¨å¦ä¸çCreateObject å½ä»¤ï¼
 Â
  Set objXMLdoc = CreateObject("Microsoft.XMLDOM")
 Â
 表A:ååºäºå¨å建äºXMLDOMDocumentç对象åï¼æä»¬å¯ä»¥å¾å°çä¸äºç¹æ§åæ¹æ³ã
 Â
Â æ¹æ³Â                      æè¿°
 CreateAttribute        å建æ°å±æ§
 Â
 CreateCDATASection     å建DATA é¨åç»ç¹
 Â
 CreateComment          å建注éç»ç¹
 Â
 CreateElementÂ Â Â Â Â Â Â Â Â Â ä½¿ç¨æå®åç§°å建å ç´ ç»ç¹
 Â
 CreateEntityReference   å建å®ä½åè对象
 Â
 CreateNode             å建ç»ç¹
 Â
 CreateTextNode         åå»ºææ¬ç»ç¹
 Â
 LoadÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â è½½å ¥å·²æç XML ææ¡£
 Â
 Save                   ä¿åXML ææ¡£
 Â
Â ç¹æ§Â                        æè¿°
 PreserveWhiteSpace     æç¤ºæ¯å¦å¨XMLææ¡£ä¸æ¾ç¤ºç©ºæ ¼t
 Â
 ResolveExternals       解æååï¼DTDåå¤é¨å®ä½ç´¢å¼
 Â
 ValidateOnParse         æç¤ºè§£æå¨æ¯å¦å¯¹ææ¡£è¿è¡åæ³æ§æ£æ¥
 Â
 DocumentElement        è¿åXML ææ¡£çæ ¹ç»ç¹
 Â
 设置è¿è¡é项
 æ£å¦ä½ å¨è¡¨A䏿çå°çï¼åªæå建äºXMLDOMDocument 对象ï¼ä½ æå¯å建å个çXMLç»ç¹ãå¨åè¿ä¸ªå·¥ä½ä¹åï¼ä½ è¿å¯ä»¥è®¾ç½®XMLææ¡£çè§£æè¿è¡æ¡ä»¶ï¼å¦æä½ æç®ç´æ¥çæXMLææ¡£å°æµè§å¨æ¶ï¼å°±å¾æç¨å¤ã
 è¿è¡é项å¯ä»¥è®©ä½ è®¾ç½®å¼æ¥ä¸è½½ï¼æä¾ææ¡£åæ³æ§æ£æ¥åä¿çç©ºæ ¼ï¼ä»¥åè§£æå¤é¨ç´¢å¼ã为äºé²æ¢å¼æ¥ä¸è½½ï¼å¯è®¾ç½®asynchç¹æ§ä¸ºFalseã妿æç®ç¨ä¸è¡æ°å符代æ¿ç©ºæ ¼ï¼å¯è®¾ç½®PreserveWhiteSpace ç¹æ§ä¸ºTrueã ResolveExternalsç¹æ§å¯é²æ¢è§£æå¼æè§£æå¤é¨å®ä½ç´¢å¼ï¼ææ¡£ç±»åå®ä¹æè å¤é¨ååã
1ãå建ç»ç¹
 Â
 XMLDOMDocument 对象æä¾äºå建ç»ç¹æè XMLDOMNodeçä¸¤ç§æ¹æ³ï¼ CreateElement åCreateNodeãéæ©å ¶ä¸åªä¸ç§æ¹æ³ï¼åå³äºä½ éè¦ç»ç¹æä¾ä¿¡æ¯éçå¤å°ãå½ä½ 使ç¨CreateElement æ¹æ³æ¶ï¼åªè¦æä¾ç»ç¹åç§°ï¼å¦
 Â
 Set objXMLroot = objXMLdoc.CreateElement("ORDER_STATUS")
 Â
 å½ä½¿ç¨CreateNode æ¹æ³æ¶ï¼ä½ è¦æå®ç»ç¹ç±»åï¼ç»ç¹åç§°åç¸å ³ååã(XMLååå¯ä»¥è®©ä½ æ©åä¸ææ¡£ä¸ç¨åä¸åç§°å建å¤ä¸ªXMLå ç´ ) ä¾å¦ï¼å¦æè¦ä½¿ç¨CreateNodeæ¹æ³ï¼ä½ å¯ååºå¦ä¸ä»£ç ï¼
 Â
 Set objXMLroot = objXMLdoc.createNode("element","ORDER_STATUS","Space1")
 Â
Â ä¸æ¦å建äºç»ç¹ï¼ä½ é¡»æå®æ·»å è¿XMLææ¡£ä¸ãè¿å°±è¦ç¨AppendChild æ¹æ³ï¼ä¾å¦ï¼ç»§ç»ä¸é¢çä¾åï¼ä½ å¯ä»¥ååºï¼
 Â
 objXMLdoc.AppendChild(objXMLroot)
 Â
 该è¯å¥å建äºXMLæ ¹ç»ç¹ã
 é¤äºAppendChildæ¹æ³å¤ï¼XMLDOMNode 对象ä¹å ·æå ¶å®ä¸ä¸ªæ§å¶XMLç»ç¹çæ¹æ³ï¼ ReplaceChildï¼ RemoveChildåInsertBefore
2ã对ç»ç¹ç屿§èµå¼
Â ä¸æ¦å建äºç»ç¹ï¼è¿è¦å¯¹å ¶å±æ§èµå¼ï¼å¦ç¬ç«çæ è¯ç¬¦ï¼æè ç¹æ§å¼ãä½ è¦ç¨å°SetAttributeæ¹æ³ãè¯¥æ¹æ³æ¥æ¶ä¸¤ä¸ªåæ°â 屿§åå屿§å¼ãä¾å¦ï¼ä¸å代ç å建äºå±æ§åSHIPPING_DATASOURCE å屿§å¼NORTH_ATLANTIC_SHIPPINGï¼
 Â
 objXMLroot.SetAttribute "SHIPPING_DATASOURCE"ï¼"NORTH_ATLANTIC_SHIPPING"
 Â
Â æ¤æ¶ï¼æä»¬çæäºä¸ä¸ªXMLææ¡£ï¼SetAttributesæ¹æ³å建äºç»ç¹å±æ§ ã
 Â
3ãå å ¥åç»ç¹
 è¦å建åç»ç¹ï¼ä½ å¯ä»¥ä½¿ç¨æä»¬åé¢ä»ç»çCreateElementæè CreateNode æ¹æ³ï¼ç¶åæå®ä»¬æ·»å å°åéçç¶æ¯ç»ç¹ä¸ãä¾å¦ï¼åè®¾ï¼æä»¬è¦å建称为PUBLISHER_DISCLAIMERçXMLç»ç¹ã为äºåå°è¿ä¸ç¹ï¼æä»¬æè¯¥ç»ç¹éå å°ææ¡£çæ ¹ç»ç¹ä¸ï¼ä»£ç å¦ä¸ï¼
 Â
 Set objXMLChildTestNode = objXMLdoc.createNode("element","PUBLISHER_DISCLAIMER","")
 objXMLdoc.DocumentElement.appendChild(objXMLChildTestNode)
 Â
 注æï¼æä»¬ä½¿ç¨äºXMLDOMDocumentç DocumentElement ç¹æ§æ¥ææ°ç»ç¹æ·»å å°XMLææ¡£çæ ¹ç»ç¹ä¸ï¼è¦æ·»å åç»ç¹ï¼ä½ åªéæå®ä»¬æ·»å å°ç¶æ¯ç»ç¹ä¸ã
 Â
4ãç»ç»ç¹èµå¼
Â ä¸æ¦åå»ºå®ææçç»ç¹ï¼ä½ å°éè¦ç»å®ä»¬èµå¼ã飿¯XMLæå ³é®çæ¥éª¤ãè¦åå°è¿ç¹ï¼ä½ å平叏䏿 ·ï¼å建ä¸ä¸ªç»ç¹ï¼ç¶å对该ç»ç¹çTEXT屿§èµå¼ãä¾å¦ï¼ä¸å代ç å建äºç§°ä¸ºPUBLISHED_DATEçXMLç»ç¹ï¼ç¶åèµå¼å¦ä¸ï¼
 Â
 Set objPublishDate = objXMLdoc.CreateNode("element","PUBLISHED_DATE","")
 dShippedDate = FormatDateTime(Date,2)
 objPublishDate.Text = dShippedDate
 objXMLChildTestNode.appendChild(objPublishDate)
 æä»¬å¯¹æå½åæ¥æèµç»PUBLISHED_DATEçText屿§ï¼ç¶åæè¯¥ç»ç¹æ·»å å°PUBLISHER_DISCLAIMERå ç´ ä¸ã
Â
5ãå¨ASPä¸ä½¿ç¨XML DOM
  è¦çæåé¢ä¾åä¸çXMLææ¡£ï¼æä»¬å¯ä»¥ç¨ASPæ¥çæãæä»¬å°å建ä¸ä¸ªç®åçASP页ï¼è®©ä½ åªéç¹å»æé®ï¼å°±å¯å建XMLææ¡£ã为äºå®æè¿ä»¶äºæ ï¼æä»¬ç¨äºå¸¦æWindowsèæ¬æä»¶çASPç½é¡µï¼ç±å®æ¥çæXMLãæä»¬å°ç¨Windows Script Component Wizardæ¥çæåå§ä»£ç ã(å¦æä½ æ²¡æwizardï¼å¯å°å¾®è½¯çèæ¬æ ç®ä¸å»å¯»æ¾ã)
 Â
 (1)åå»ºèæ¬ç»ä»¶
 å¼å§æ¶è¿è¡Windows Script Component Wizardãå¨ç¬¬ä¸ä¸ªçªå£ä¸ï¼è¾å ¥XMLDom ä½ä¸ºç»ä»¶åç§°ï¼ç¶ååå»Nextã确信VBScript忝æActive Server Pagesé项å¨ç¬¬äºä¸ªçªå£ä¸è¢«éä¸ï¼ç¶ååå»Next两次ãå¨ç¬¬å个çªå£ï¼è¾å ¥CreateXMLï¼ä½ä¸ºæä»¬çèæ¬å¯¹è±¡çå¯ä¸æ¹æ³ãååå»Next ä¸¤æ¬¡ï¼æååç¹å»Finishã宿äºè¿äºäºæ åï¼ wizard å°±å建äºç»ä»¶ï¼å¹¶æç»ä»¶æ·»å å°ä½ çæ¡é¢ä¸ã
 Â
Â æ¤æ¶ï¼æä»¬è·å¾äºç»ä»¶çåºæ¬ç»æï¼ä½å®å¹¶ä¸å å«ä»»ä½åè½ï¼æä»¥è¿è¦æ·»å åè½ãè¦åå°è¿ç¹ï¼åå»ä½äºæ¡é¢çXMLDom çå¿«æ·é®ã宿åï¼Windows å¨è®°äºæ¬ä¸æ¾ç¤ºåºåå§ä»£ç ãæ³¨æç»ä»¶æ¬èº«æ¯ä¸ªXMLææ¡£ãè¦æ·»å CreateXML 代ç ï¼æä»¬å°å建ä¸ä¸ªåè¿ç¨æ¥ä»£æ¿å½æ°ãæä»¥ï¼å é¤ä¸é¢çè¡
 Â
 function CreateXML()
  CreateXML = "Temporary Value"
 end function
 å¨è¯¥å¤è¾å ¥å表Aä¸ç代ç
 (2)æé ASPç½é¡µ
 Â
 Â
 为äºå建ASPç½é¡µï¼æå¼ä½ æçæçHTML ç¼è¾å¨ï¼è¾å ¥å表Bä¸ç代ç ãç¡®ä¿ Window.Navigateè¡æååéçæä»¶å¤¹ãè¦äºè§£å ¶æ¯å¦ä½å·¥ä½çï¼å¨Internet Explorer䏿å¼è¯¥é¡µã䏿¦æå¼åï¼å°±ä¼åºç°ä¸ä¸ªä¿¡æ¯ï¼åè¯ä½ XMLå·²ç»åå»ºäºæåï¼å¹¶åºç°ä¸ä¸ª Show æé®ï¼ç¹å»è¯¥æé®ã
 Â
 XML DOM åºä¸æ´å¤å 容
 æ£å¦ä½ 卿 ·æ¬ä»£ç 䏿è§ï¼XML DOM å å«äºæ¯æä»¬æ¤å¤æä»ç»çæ´å¤çæ¹æ³å屿§ãè¦æ¥æ¾å®æ´çXMLææ¡£å¯¹è±¡æ¨¡åï¼è¯·è®¿é®æå ³å¾®è½¯ç½ç«ãåæ¶ï¼å¦ä½ä½ æ³äºè§£XML DOM以åXSLåASPçé«çº§ç¨æ³çä¾åï¼è¯·è®¿é®www.i3solutions.com/onlinedemos.aspã
 Â
 ç»è®º
1ãXMLæ£å¨è¿ çåå±ï¼å以å¾çä»¥ææ¬ä¸ºä¸å¿çç½é¡µç¸æ¯ï¼XMLçæ°æ®æ¨¡åç»ææä¾äºæ´å¤çåè½ï¼ XMLææ¡£å¯¹è±¡æ¨¡åéè¿ç¼ç¨åçæ¹å¼ï¼å¯ä»¥ä¸ºä½ å建XMLææ¡£ãæ¬æä¸ï¼æä»¬å¯¹XML DOMä½äºå ¥é¨æ§çä»ç»ï¼å¹¶ä¸æ¼ç¤ºäºå¦ä½å¨Active Server Pagesä¸ä½¿ç¨XML DOMã
2ãåXMLæä»¶çæ¥éª¤ï¼
(1)ã对象çæ
 set obj = Server.CreateObject("Microsoft.XMLDOM")
(2)ãå è½½XMLæä»¶
 obj.load(sourceFileXML)
(3)ãåXMLæä»¶ä¸çç»ç¹çåå¾
 set objRootList = obj.documentElement
(4)ã对象çæ
 set objNew = Server.CreateObject("Microsoft.XMLDOM")
(5)ãå è½½æ°ç»ç¹
 objNew.LoadXML(strNewNode)
(6)ãæ°ç»ç¹åå¾
 RootNewNode = objNew.documentElement
(7)ãå°ç¬¬(6)æ¥åå¾çæ°ç»ç¹å è½½å°ç¬¬(3)æ¥åå¾çç»ç¹çåé¢
 objRootList.appendChild(RootNewNode)
(8)ãä¿åXMLæä»¶
 obj.save(sourceFileXML)
(9)ãéæ¾çæç对象
 set obj = nothing
 set objNew = nothing
äºãXML对大å°åæ¯ææç
 èå¨XMLä¸ï¼ææçå ç´ é½å¿ é¡»è¦æä¸ä¸ªç»ææ è®°ï¼å¦:
 Â
 ãã <p>This is a paragraph</p>
 ãã <p>This is another paragraph</p>
 Â
 ãã æ³¨æï¼ä»åé¢çä¾åä¸ä½ å¯è½å·²ç»æ³¨æå°äºï¼XMLå£°ææ²¡æç»ææ è®°ãè¿å¹¶ä¸æ¯ä¸ä¸ªé误ãå 为声æå¹¶ä¸æ¯XMLææ¡£çä¸é¨åãå®ä¸æ¯ä¸ä¸ªXMLå ç´ ï¼å æ¤å®ä¸è½æç»ææ è®°ã
 Â
 ãã XML对大å°åæ¯ææçï¼è¿ä¸ç¹ä¸è±¡HTMLãå¨XMLä¸ï¼æ è®°<Letter> åæ è®° <letter> æ¯ä¸ä¸æ ·çã å æ¤ï¼æå¼åç»ææ è®°ç大å°ååºè¯¥åæç¸åç:
 Â
 ãã <Message>This is incorrect</message>
 ãã <message>This is correct</message>
 Â
 ãã ææçXMLå ç´ é½å¿ é¡»åçåµå¥
 Â
 ãã 妿æ è®°çåµå¥ä¸åçï¼å¨XML䏿¯æ²¡ææä¹çã å¨HTMLä¸ï¼æäºå ç´ å¯ä»¥è¢«ä¸éå½å°å½¼æ¤åµå¥ï¼ä¾å¦ï¼
 Â
 ãã <b><i>This text is bold and italic</b></i>
 Â
 ãã èå¨XML ï¼ææå ç´ é½å¿ 须彼æ¤åçå°åµå¥ï¼ä¾å¦:
 Â
 ãã <b><i>This text is bold and italic</i></b>
 Â
 ãã ææçXMLææ¡£é½å¿ é¡»è¦æä¸ä¸ªæ ¹æ è®°
 Â
 ãã å¨ä¸ä¸ªXMLææ¡£ä¸ç第ä¸ä¸ªæ è®°å°±æ¯æ ¹æ è®°ã ææçXMLææ¡£é½å¿ é¡»å å«ä¸ä¸ªæ 记对æ¥å®ä¹æ ¹å ç´ ãææçå ¶ä»å ç´ é½å¿ é¡»åµå¥å°æ ¹å ç´ éé¢ã ææçå ç´ é½å¯ä»¥æåå ç´ ãåå ç´ é½å¿ é¡»æ£ç¡®å°åµå¥å°æ¯å ç´ ä¸ã
 Â
 ãã <root>
 ãã <child>
 ãã <subchild>.....</subchild>
 ãã </child>
 ãã </root>
 Â
 ãã å¿ é¡»å°å±æ§å¼å¼èµ·æ¥
 Â
 ãã å¨XMLä¸ï¼å¨å±æ§å¼å¨å´çç¥å¼å·æ¯éæ³çã åHTML䏿 ·ï¼XMLå ç´ çå/å¼å¯¹ä¸å¯ä»¥æå±æ§ãå¨XMLä¸ï¼å±æ§å¼å¿ é¡»å¼èµ·æ¥ãççä¸é¢ç两个XMLææ¡£ã 第ä¸ä¸ªæ¯æ£ç¡®çï¼ç¬¬äºä¸ªæ¯é误çï¼
 Â
 ãã <?xml version="1.0"?>
 ãã <note date=12/11/99>
 ãã <to>Tove</to>
 ãã <from>Jani</from>
 ãã <heading>Reminder</heading>
 ãã <body>Don't forget me this weekend!</body>
 ãã </note>
 ãã
 ãã <?xml version="1.0"?>
 ãã <note date="12/11/99">
 ãã <to>Tove</to>
 ãã <from>Jani</from>
 ãã <heading>Reminder</heading>
 ãã <body>Don't forget me this weekend!</body>
 ãã </note>
 Â
 ãã ææ¡£ä¸ç第ä¸ä¸ªé误æ¯å¨note å ç´ ä¸çæ°æ®å±æ§æ²¡æå¼èµ·æ¥ã è¿æ ·æ¯æ£ç¡®ç: date="12/11/99"ã è¿æ ·æ¯é误ç: date=12/11/99ã
 Â
 ãã å¨XMLä¸ï¼ç©ºæ ¼æ¯ä¿çç
 Â
 ãã å¨XMLä¸ï¼ææ¡£çç©ºæ ¼ä¸è½è¢«å é¤ã è¿ä¸ç¹ä¸è±¡HTMLãå¨HTMLä¸ï¼è¿æ ·ä¸å¥è¯: Hello my name is Tove, å°è¢«æ¾ç¤ºæè¿æ ·ï¼ Hello my name is Tove, å 为HTML æç©ºæ ¼é¤å»äºã
 Â
 ãã å¨XMLä¸, CR / LFè¢«è½¬æ¢æ LF
 Â
 ãã å¨XMLä¸, ä¸ä¸ªæ°è¡é常被åå¨ä¸º LFã ä½ ç¥éä»ä¹æ¯æåæºåï¼æåæºæ¯ä¸ä¸ªä¸çºªä½¿ç¨çä¸ç§æåæºå¨è®¾å¤ã å½ä½ å¨æåæºä¸æäºä¸è¡ä»¥åï¼ä½ è¦æå¨å车å°å·¦è¾¹ç空ç½ï¼ç¶åæå¨è¿çº¸ã å¨Windows åºç¨ç¨åºä¸ï¼ææ¬ä¸çæ°ä¸è¡é常åå¨ä¸ºCR LF å符对ãå¨Unix åºç¨ç¨åºä¸ï¼æ°çä¸è¡é常被åå¨ä¸ºä¸ä¸ªLFå符ãèæäºåºç¨ç¨åºåªç¨ä¸ä¸ªCRå符æ¥å卿°è¡ãÂ
åèæç®ï¼
   [1]ãaspä¸xmlé«çº§ç¼ç¨ã
ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
ä½è ï¼å¨å¿ä¸°ï¼å¤§è¿ï¼
æ¥æï¼2003å¹´5æ14æ¥
Emailï¼[email protected]
ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
Â