`
jackter
  • 浏览: 33590 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论
  • ksgimi: 楼主,您的api不錯,就是提示有病毒,您不您打包一个无毒api ...
    AgentFlow API

xml學習筆記二

    博客分类:
  • XML
阅读更多
/***======= Chapter 2: The XML Document Object Model =============*/

第二章: xml物件模型
xml文件操作代碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> XML DOM Examples </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="Jackter">
  <META NAME="Keywords" CONTENT="XML">
  <META NAME="Description" CONTENT="XML DOM Examples">
 </HEAD>
 <BODY>
  <script language="JavaScript">
  	
/**
 * xml取元素document,node,element類
 * 前提是這個文件是Well-Formed XML Document(組織良好的xml文件)
 * 否則會出現js錯誤
 */
function getxmlDocumentClass()
{
	var xmlDox ;
	//創建xml對象
	xmlDox = new ActiveXObject("Microsoft.XMLDOM");
	//加載已有的xml文件
	xmlDox.load("test.xml");
	//取第一個根元素
	var root = xmlDox.documentElement.childNodes.item(0);
	//取標簽名
	document.writeln("xmlRoot : "+ root.tagName + "<br>");
	//將xml文件根元素下所有子元素按層級羅列出來
	for ( i = 0 ; i < root.childNodes.length; i++ )
	{
		document.writeln(" &nbsp;&nbsp;&nbsp;&nbsp;Parent "+ i + " : " + root.childNodes.item(i).tagName +"<br>");
		child = root.childNodes.item(i);
		for ( j = 0; j < child.childNodes.length ; j++ )
		{
			document.writeln(" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Child "+ j + " : " +child.childNodes.item(j).tagName + " : " + child.childNodes.item(j).text +"<br>" );
		}
	}
	document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='XMLDom.html'>Back</a>");
}


/**
 * 判斷xml文件出錯的准確位置與原因
 * XML Dom 的parseError Class(此方法屬性僅適用於IE瀏覽器)
 */
function xmlParseErrorClass( )
{
	//創建xml對象
	var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	//關閉異步方式
	xmlDoc.async = false;
	//加載已有文件
	xmlDoc.load("test.xml");
	//列印xml文件的內容
	document.writeln(xmlDoc.xml+"<BR>");
	//如果有錯誤
	if ( xmlDoc.parseError.errorCode != 0 )
	{
		document.writeln("FilePath : " + xmlDoc.parseError.url + "<BR><BR>");
		document.writeln("Error No : " + xmlDoc.parseError.errorCode + " occured on line : " + xmlDoc.parseError.line + " , position " + xmlDoc.parseError.linepos + "<BR><BR>");		
		//document.writeln(" Error position in file : " + xmlDoc.parseError.filepos + "<BR><BR>");
		document.writeln("Error reason : " + xmlDoc.parseError.reason + "<BR><BR>");
		document.writeln("Error Position Code : " + xmlDoc.parseError.srcText + "<BR><BR>");
	}
	//如果沒有錯誤
	else
	{
		document.writeln("<BR><font color='red'>Congratulation! XML Document is Well-Formed!</font><B><BR>");
	}
	document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='XMLDom.html'>Back</a>");

}


/**
 * XML的HTTP伺服器操作方式
 * 此方法是Ajax技術的核心
 */
function getXMLHttpRequest()
{
	var url = "http://www.163.com/";
	var xmlHTTP = new ActiveXObject("Microsoft.xmlHTTP");

	/* xmlHTTP.open("method","url",async,"username","password") 
	 * method: 表示頁面傳送方式,有兩種(get,post)
	 * async : 表示是否采用異步方式 (true:異步 false:同步),一般采用異步方式
	 */
	xmlHTTP.open("get", url, true);
	//伺服器狀態改變時觸發
	xmlHTTP.onreadystatechange = function()
	{
		//伺服器處在備妥狀態
		// readyState(0:正在初始化, 1:加載中 2:加載完成 3:數據交換中 4:備妥)
		if ( xmlHTTP.readyState == 4 )
		{
			//請求成功
			if ( xmlHTTP.status == 200 )
			{
				document.writeln("Your Request for url:" +  url + "  is OK");
			}	
			//給定的url地址找不到
			else if ( xmlHTTP.status == 404 )
			{
				document.writeln( "Your Request for url:" + url + " Not Found! ");
			}
			//其它
			else
			{
				document.writeln(xmlHTTP.status + " : " +xmlHTTP.statusText);
			}
		}
	
	}
	//發送請求至伺服器
	xmlHTTP.send();
	document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='XMLDom.html'>Back</a>");
}
  

  </script>
  <form>
  <input type=button value="getXMLText" onClick="getxmlDocumentClass()">
  <input type=button value="getXMLerror" onClick="xmlParseErrorClass()">
    <input type=button value="XMLhttpRequest" onClick="getXMLHttpRequest()">
  </form>
 </BODY>
</HTML>



test.xml示例文件代碼如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--外部DTD用法  -->
<!--
<!DOCTYPE root  SYSTEM "test-dtd.dtd" > 
  -->  
 <!-- 內部DTD用法 -->
 <!DOCTYPE root	[<!ELEMENT root (countrys)*>
	<!ELEMENT  countrys (country)*>
    <!ELEMENT  country (name,population,landsurface,position,language)>
	<!ELEMENT  name (#PCDATA)>
	<!ATTLIST  name key CDATA "cn" value CDATA "china">
	<!ELEMENT  population (#PCDATA)>
	<!ELEMENT  landsurface (#PCDATA)>
    <!ELEMENT  position (#PCDATA)>
    <!ELEMENT  language (#PCDATA)> ]>

<root>
	<countrys>
	<country>
		<name key="cn" value="china">china</name>
		<population>1.3 billion</population>
		<landsurface>9.60 million square kilometres</landsurface>
		<position>Asia</position>
		<language>Chinese</language>
	</country>
	<country>
		<name key="en" value="english">England</name>
		<population>1.6 billion</population>
		<landsurface>8.12 million square kilometres</landsurface>
		<position>Asia</position>
		<language>English</language>
	</country>
	</countrys>
</root>


驗證xml文件是否是Well-Formed,還有另外一種方法,采用java驗證法,下面是驗證所需用到的java類,如果沒有拋出錯誤,就說明xml文件是Well-Formed的:
package com.jackter.DtdValidate;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.xml.sax.InputSource;
public class DtdValidate
{

    /**
     * 用於驗證xml文件是否遵守既有的DTD文件
     * @param args
     */
    public static void main ( String[] args )
    {

        String xmlfile_name = "test.xml";
        try
        {
            // new 文件工程
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            // 開啟驗證
            dbf.setValidating(true);
            // new 文件
            DocumentBuilder builder = null;
            builder = dbf.newDocumentBuilder();
            //轉換
            builder.parse(new InputSource(xmlfile_name));
            
          

        }
        //例外
        catch ( Exception e )
        {
            e.printStackTrace();
        }
    }
}



下面有提供代碼壓縮包,可直接下載!
/***====================== Chapter 2: end =======================*/
分享到:
评论

相关推荐

    xml基础学习笔记

    XML 基础学习笔记 XML 文档基本结构: 1. 文档说明:一个完整的 XML 文档中必须包含一个文档说明,这个说明表示该文档是一个 XML 文挡,以及遵循那个 XML 版本的规范。最简单的文档说明如下:`&lt;?xml version=”1.0...

    Dom4j学习教程+API+xml实用大全+xml学习笔记+htc

    标题"Dom4j学习教程+API+xml实用大全+xml学习笔记+htc"提及了几个关键主题,包括Dom4j的学习资源、API文档,以及关于XML的实用指南和学习笔记,还提到了一个名为"htc"的文件,可能是关于HTC设备或技术的文档。...

    java与xml 学习笔记整理

    2. **获取解析器**: 工厂对象`dbf`创建的`DocumentBuilder`实例`db`是实际的DOM解析器。`db`负责将XML文档解析成内存中的`Document`对象。 3. **解析XML文档**: 调用`DocumentBuilder`的`parse()`方法,传入XML...

    XML学习笔记.doc

    XML学习笔记 本文档是一份详细的XML学习笔记,涵盖了XML的背景、XML和HTML的关系、SGML、XML和HTML的关系、XML文件、XML标记等方面的知识点。 一、XML的背景 XML是扩展的标记语言(eXtensible Markup Language)...

    XML学习笔记(包括Java的两种解析XML的方法)

    XML学习笔记(包括Java的两种解析XML的方法)。 XML基础语法的介绍,DTD的介绍和使用。 可快速入门,也可当手册使用。

    PHPXML学习笔记

    2. **XML命名规则**:元素和属性名必须遵循一定的命名规则,如不能以数字开头,不能包含特殊字符等。 3. **XML声明**:XML文档通常以`&lt;?xml version="1.0" encoding="UTF-8"?&gt;`开始,定义了文档的版本和编码。 ### ...

    pugixml学习笔记1 加载文件

    在“pugixml学习笔记1 加载文件”中,我们将探讨如何利用pugixml库来加载XML文件,包括从内存、文件、字符串和流中加载。 首先,我们需要了解pugixml的核心类:`pugi::xml_document`、`pugi::xml_node`和`pugi::xml...

    Xml学习笔记.pdf

    由于提供的文件信息中包含了大量的XML学习资料,且内容比较丰富,我们将逐一详细解释这些内容所涵盖的知识点。 **XML简介** XML是Extensible Markup Language(可扩展标记语言)的缩写,它是一种用于标记电子文件...

    北京圣思园xml学习笔记

    ### 北京圣思园XML学习笔记核心知识点详解 #### XML概述 - **XML全称**:eXtensible Markup Language(可扩展标记语言) - **学习XML的原因**: - 数据交换的需求日益增长,XML成为了电子商务的重要基础之一。 - ...

    MLDN学习笔记 —— XML学习笔记

    XML,全称Extensible Markup Language,可扩展标记语言,是一种用于标记数据的结构化语言,...通过这些学习资料,你将能够深入理解XML的各个方面,从基础语法到高级用法,从而在实际工作中更有效地处理和利用XML数据。

    JDBC&XML 学习笔记

    JDBC&XML 个人学习笔记,适合初级学习,包含完整代码以及相应注视,简单明了

    ArcGIS客户端开发学习笔记——XML学习

    ArcGIS客户端开发学习笔记——XML学习

    xml学习笔记.pdf

    XML,全称可扩展标记语言...学习XML的基础知识,对于理解和处理结构化数据,尤其是进行跨平台的数据交换,是至关重要的。无论是初学者还是经验丰富的开发人员,掌握XML都能提高其在软件开发领域的专业能力。

    xml学习笔记.docx

    XML的学习不仅仅是理解这些基本概念,还包括命名空间、DTD(文档类型定义)或XML Schema的使用,XPath和XSLT(用于查询和转换XML)等高级主题。掌握XML能帮助开发者更好地理解和处理结构化数据,从而在各种应用场景...

    XML基础学习笔记指南

    XML,全称可扩展标记语言(Extensible Markup Language),是一种元标记语言,它的设计目的是传输和存储数据,而非展示数据。与HTML相比,XML更强调数据的结构和语义,而HTML则更多地关注数据的视觉呈现。XML的命名...

    xml schema 学习笔记

    "XML Schema 学习笔记" XML Schema 是一种基于 XML 的语言,用于定义 XML 文档的结构和约束。它可以描述 XML 文档的格式、元素、属性、数据类型、默认值、固定值等信息。XML Schema 的作用类似于 DTD,但它具有更多...

    XML 学习笔记,课件,实例

    本压缩包包含了关于XML的学习笔记、课件和实例,旨在帮助初学者全面理解和掌握XML的核心概念与应用。 XML的基础知识包括以下几个关键点: 1. **XML的基本结构**:XML文档由一系列元素构成,每个元素由起始标签(如...

    xml的学习笔记

    ### XML学习笔记:深入理解DTD(Document Type Definition) 在探讨XML文档时,了解DTD(Document Type Definition)至关重要,它作为XML文档结构定义的一种标准方法,为文档提供了语法和结构的约束,确保了文档的...

    XML学习笔记(特别适合初学者)

    XML的学习不仅包括基础语法,还包括理解XML的结构化概念、元数据、样式处理和DOM等高级主题。对于初学者来说,掌握这些基本知识是迈向专业XML开发的第一步。随着技能的提升,XML可以用于实现复杂的数据交换、数据...

Global site tag (gtag.js) - Google Analytics