XML Parser如何解析XML檔案呢?
XML Parser(XMLDOM)用以解析XML檔案,可於IE(client)與 ASP(server)上使用。
載入XML檔案
載入XML檔案時,XML Parser可使用的屬性與方法如下:
l Load方法:載入一個XML檔案。
l xml:可取得XML檔案所有內容。
l parseError.errorCode:可以得知是否載入錯誤。
l parseError.Line:得知錯誤解析行數。
l parseError.errorCode:得知錯誤碼,若不等於0表示有錯誤。
l parseError.reason:得知錯誤解析原因。
l parseError.Line:得知錯誤解析行數。
l parseError.srcText:得知錯誤解析文字。
譬如asp程式碼xmldom1.asp如下:
<%
'create the XML doc
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
'load the XML doc
XMLFile = Server.MapPath("books0.xml")
xmlDoc.Load(XMLFile)
Response.Write "
xmlDoc.parseError.errorCode = " & xmlDoc.parseError.errorCode
Response.Write "
xmlDoc.parseError.Line = " & xmlDoc.parseError.Line
Response.Write "
xmlDoc.parseError.reason = " & xmlDoc.parseError.reason
Response.Write "
xmlDoc.parseError.srcText = " & xmlDoc.parseError.srcText
Response.Write "
xmlDoc.xml = " & xmlDoc.xml
%>
首先使用Set xmlDoc = CreateObject("Microsoft.XMLDOM")指令,以使用XML Parser,再使用Load方法以載入一個XML檔案,由parseError.errorCode可以得知是否載入錯誤,若有錯誤,由parseError.Line得知錯誤解析行數,由parseError.reason得知錯誤解析原因,由parseError.Line得知錯誤解析行數,由parseError.srcText得知錯誤解析文字。
載入後,由xmlDoc.xml可取得XML檔案所有內容。
其中所載入的books0.xml檔案內容如下:
<?xml version="1.0" encoding="BIG5" standalone="yes" ?>
<bookstore>
<book genre="網站設計">
<title>ASP網站熱門應用技術</title>
<author>
<first-name>世雄</first-name>
<last-name>周</last-name>
</author>
<price>580</price>
<publisher>華彩</publisher>
</book>
<book genre="網站設計">
<title>微軟熱門Web技術速成班</title>
<author>
<first-name>世雄</first-name>
<last-name>周</last-name>
</author>
<price>450</price>
<publisher>松崗</publisher>
</book>
<book genre="網頁設計">
<title>動態網頁設計 99 招 PART 2</title>
<title>動態網頁設計 99 招 PART 3</title>
<author>
<first-name>世雄</first-name>
<last-name>周</last-name>
</author>
<price>430</price>
<publisher>第三波</publisher>
</book>
</bookstore>
解析XML檔案
解析XML檔案時,XML Parser可使用的屬性與方法如下:
n selectSingleNode("xxx"):由此點往下找尋名稱為xxx的單一節點。
n selectNodes("yyy"):由此點往下找尋所有名稱為yyy的節點。
n length:節點數目。
n Attributes.getNamedItem("zzz"):某一節點Attribute為zzz的值,譬如” <book genre="網頁設計">”中genre之Attributes.getNamedItem("genre")值為"網頁設計"。
n nodeTypedValue:某一節點的值。
譬如asp程式碼如下:
<%
'get the node
Set xml_node = xmlDoc.selectSingleNode("bookstore")
'find the book nodes
Set xml_subNodes = xml_node.selectNodes("book")
Response.Write "
xml_subNodes.length = " & xml_subNodes.length
For i = 0 To xml_subNodes.length - 1
'find the genre attribute and get the value
Set xml_subNode = xml_subNodes(i).Attributes.getNamedItem("genre")
Response.Write "<P>genre = " & xml_subNode.nodeValue
'find the title nodes
Set xml_subNode = xml_subNodes(i).selectNodes("title")
'iterate through the node list
For j = 0 To xml_subNode.length - 1
Response.Write "
title= " & xml_subNode(j).nodeTypedValue
Next
'find the author nodes
Set xml_subNode1 = xml_subNodes(i).selectSingleNode("author")
'find the first-name nodes
Set xml_subNode2 = xml_subNode1.selectSingleNode("first-name")
firstname = xml_subNode2.nodeTypedValue
'find the last-name nodes
Set xml_subNode2 = xml_subNode1.selectSingleNode("last-name")
lastname = xml_subNode2.nodeTypedValue
Response.Write "
author = " & lastname & firstname
'find the publisher nodes
Set xml_subNode = xml_subNodes(i).selectSingleNode("publisher")
Response.Write "
publisher = " & xml_subNode.nodeTypedValue
'find the price nodes
Set xml_subNode = xml_subNodes(i).selectSingleNode("price")
Response.Write "
price = " & xml_subNode.nodeTypedValue
Next
%>
首先使用selectSingleNode("bookstore")由起點往下找尋名稱為bookstore的單一節點,接著使用selectNodes("book")由此點往下找尋所有名稱為book的節點。
由length得知找到的節點數目。
然後由Attributes.getNamedItem("genre")取得此節點Attribute為genre的值。
再由selectNodes("title")找尋名稱為title的節點,接著由nodeTypedValue取得此節點的值。依序由找尋名稱為author、first-name、last-name、publisher、price節點的值。
由For i = 0 To xml_subNodes.length - 1...Next取得所有book節點的值。
新增加節點
新增加XML檔案的節點時,XML Parser可使用的屬性與方法如下:
l loadXML(“yyy”):新增加XML標記“yyy”。
l createElement("xxx"):新增加名稱為xxx的XML節點。
l documentElement.appendChild(xml_node):將新增加的節點加入XML文件。
l documentElement.lastChild:移到最後節點處。
l createAttribute("zzz"):新增加名稱為zzz的Attribute。
l Text:設定Attribute的值。
l Attributes.setNamedItem(xml_node):將新增加的Attribute加入XML文件。
譬如asp程式碼如下:
<%
'create the XML doc
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
'load the XML doc
XMLFile = Server.MapPath("log.xml")
xmlDoc.Load(XMLFile)
'check if xml exists in the file
If xmlDoc.xml = "" Then
Call xmlDoc.loadXML("<root></root>")
End If
'create the new log node
Set xml_node = xmlDoc.createElement("log")
'add the node to the document
Set xml_node = xmlDoc.documentElement.appendChild(xml_node)
'get the new node
Set xml_logNode = xmlDoc.documentElement.lastChild
'create the new user atribute
Set xml_node = xmlDoc.createAttribute("User")
xml_node.Text = "jack"
'add the attribute to the list
Call xml_logNode.Attributes.setNamedItem(xml_node)
'create the new date atribute
Set xml_node = xmlDoc.createAttribute("Date")
xml_node.Text = CStr(date)
'add the attribute to the list
Call xml_logNode.Attributes.setNamedItem(xml_node)
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreatetextFile(XMLFile, True)
a.Write xmlDoc.xml
a.Close
Response.Redirect "log.xml"
%>
於瀏覽器執行結果如下,顯示此新產生的XML檔案。
首先使用Set xmlDoc = CreateObject("Microsoft.XMLDOM")指令,以使用XML Parser,再使用Load方法以載入一個XML檔案log.xml,若xmlDoc.xml為空字串表示無內容,則由xmlDoc.loadXML("<root></root>")加入<root></root>標記。
接著由 xmlDoc.createElement("log")以新增加名稱為log的XML節點,由documentElement.appendChild(xml_node)將新增加的節點加入XML文件,再由documentElement.lastChild移到最後節點處以再加以新的節點。
由createAttribute("User")新增加名稱為User的Attribute,由Text設定Attribute的值,由Attributes.setNamedItem(xml_node)將新增加的Attribute加入XML文件。
依序加入User、Date的Attribute。
最後使用Scripting.FileSystemObject之CreatetextFile方法,將此XML文件儲存成一個XML檔案test1.xml,最後Response.Redirect重新導向到此新產生的XML檔案。
分享到:
相关推荐
2. **XML语法与解析**:讲解XML的基本元素、属性、命名空间等概念,以及如何使用DOM(Document Object Model)、SAX(Simple API for XML)等解析器在ASP中解析XML文件。 3. **ASP与XML结合应用**:展示如何在ASP中...
XML与数据库之间的关系密切。在小规模数据应用中,XML可以直接作为轻量级数据库使用,尤其在需要快速读取和写入少量数据时,避免了大型数据库引擎的开销。同时,XML也可作为大型数据库如SQL Server、Oracle、MySQL、...
3. ASP与XML结合:探讨如何在ASP中创建和读取XML文件,以及如何使用ASP的XML对象模型处理XML数据。 4. 数据绑定和XML数据源:讲述如何将XML数据绑定到ASP控件,实现在网页上动态展示XML内容。 5. XSLT和XPath:介绍...
《ASP与XML高级编程》源码 wrox出版社出版, 文件列表 Chapter 03 ..........\contacts.xml ..........\invalid_contacts.xml ..........\update_booklist.xml ..........\Verifire.asp Chapter 05 ............
XML与ASP的结合可以实现高效的数据交换和展示。通过将XML作为数据源,ASP可以轻松地解析这些数据并将其呈现到网页上。这种组合的优势在于可以实现数据和表现层的分离,从而提高了网站的可维护性和扩展性。 #### ASP...
在ASP.NET环境中,XML与C#的结合使得开发人员能够构建更强大、更灵活的应用程序。 1. **XML基础**: - XML语法:了解XML的基本结构,包括元素、属性、注释、处理指令和文档类型定义(DTD)或XML Schema(XSD)。 ...
在ASP(Active Server Pages)开发中,XMLDOM(XML Document Object Model)对象是处理XML文档的强大工具。XMLDOM提供了一种标准的方式来解析、修改和操作XML数据,它遵循W3C DOM规范。在这个示例中,我们将深入探讨...
本篇文章将深入探讨如何在ASP中添加和删除XML信息,以及与之相关的知识点。 **1. ASP与XML的基础知识** - **ASP基础**: ASP文件是包含服务器端脚本的HTML页面,这些脚本在服务器上执行,然后将结果发送到客户端...
与传统的DOM和XPath相比,LINQ to XML提供了一种更直观、类型安全的方式来创建、查询和修改XML文档。 4. **XPath和XSLT**:XPath是用于在XML文档中查找信息的语言,而XSLT则用于转换XML文档。ASP.NET提供了...
总结一下,ASP与XML的结合使得开发者能够轻松地在服务器端处理和管理结构化的数据。通过学习和实践这些操作,你不仅可以提升Web开发技能,还能为构建更高效、灵活的Web应用程序打下坚实的基础。
当ASP与XML结合时,可以构建出强大的Web应用程序,因为XML提供了数据的组织和传输,而ASP则负责处理这些数据并生成动态内容。 在“asp与xml开发案例”中,我们将会深入学习如何利用XML作为数据存储和传输的载体,...
在ASP中,处理XML文件是常见的数据交互方式之一。XML(eXtensible Markup Language)是一种结构化数据格式,广泛用于存储和传输数据。本文将详细介绍如何在ASP中以最简单的方式读取XML文件。 首先,我们需要了解ASP...
在.NET环境中,ASP.NET经常与XML一起使用,实现数据的存储、读取和传输。XML可以作为数据源,供ASP.NET页面进行数据绑定,展示在网页上。ASP.NET也提供了许多内置的类和方法,如XmlDocument、XDocument(LINQ to XML...
《Flash+ASP+XML留言本教程详解》 在互联网应用中,留言本作为一种常见的互动功能,经常被用于网站与用户之间的交流。本教程主要探讨如何结合Flash、ASP和XML技术来构建一个动态、美观且实用的留言本系统。Flash以...
《XML与ASP网站实作大全》是一本深入探讨XML(Extensible Markup Language)在ASP(Active Server Pages)环境中应用的全面教程。XML是一种用于标记数据的语言,它具有自定义标记和结构化的特性,使得数据传输和处理...
ASP.NET XML with C# 是一个重要的开发主题,它涉及到如何在ASP.NET环境中使用C#语言处理XML数据。XML(eXtensible Markup Language)是一种结构化数据格式,广泛用于存储和传输数据,尤其是在Web服务和应用程序之间...
ASP(Active Server Pages)与XML(eXtensible Markup Language)是两种在Web开发中广泛使用的技术。ASP是一种服务器端脚本环境,用于创建动态、交互式的网页,而XML则是一种数据交换和存储的标准,强调数据的结构化...
ASP的核心优势在于其易学易用和与微软的其他产品如SQL Server、Access的无缝集成。 XML(Extensible Markup Language)则是一种用于存储和传输结构化数据的标准格式。不同于HTML用于展示内容,XML设计的目标是传输...
"from.gif"可能是与教程相关的图片,而"最新Asp.Net源码下载.url"则可能指向更多Asp.net资源的链接。 总之,Asp.net提供了丰富的API来处理XML,无论是简单的读取、写入,还是复杂的查询和操作,都能轻松应对。通过...
4. **ADO.NET Data Services和XML数据绑定**:书中会探讨如何使用ADO.NET与XML数据源交互,以及如何在ASP.NET控件中实现XML数据的绑定,以构建动态的Web应用。 5. **Web服务和SOAP**:XML是Web服务的主要通信协议,...