分享
 
 
 

检查XML文件的有效性

王朝other·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

本章最后提出一个HTML 网页,该网页会开启一份XML 文件并使用DOM 的属性来回报网页包含的任何错误。如果文件中没有文件形态宣告,此网页只会传回格式正确性的错误讯息。如果文件包含了文件形态宣告,则网页将回报格式正确性与有效性的错误讯息。你可以利用此网页来测试任何的XML 文件。

如何使用有效性测试网页

1. 在文字编辑器中, 开启 有效性测试网页 Validity Test.htm 。(你可以在随书光盘与下节的列表9-10 中找到此网页。)

2. 编辑网页中 BODY 标签里的 data island ,好让其SRC 属性被指定成你想要测试的XML 文件的URL 值。例如,要测试文件Raven.xml,你需要将data island编辑如下:

<XML ID="dsoTest" SRC="Raven.xml"></XML>

3. 使用文字编辑器中的 Save 指令,来储存更改过的网页。

4. 将网页 开启 于Internet Explorer 5 中:

当Internet Explorer 5 中XML 处理程序处理网页首次遭遇错误时,此网页将显示一个消息框,显示出错误的相关信息。

下图为处理的文件毫无错误时,消息框显示的结果:

下图则为处理文件遭遇错误时,消息框展示错误讯息的例子:

有效性测试网页如何运作

到目前为止你在本章中所看到的HTML 网页,都做了两个简化处理的假设:

被连结的XML 文件是正确不含错误的。如果假设不成立,将无法得到任何表示XML 文件资料的节点。

当script 试着存取XML 文件的资料时,浏览器已经完成加载和处理此文件的工作。如果假设不成立,部分XML 数据将无法取得。

如果上述假设中任何一个不成立时,部分或全部的XML 资料将无法显示在网页上。这里提出的有效性测试网页将告诉你,如何测试被链接的XML 文件是否包含错误。你可以在你撰写的网页中加入类似的测试,如果文件中含有错误时,将显示对你有帮助的讯息。有效性测试网页也显示了script 程序如何能够确定在存取XML 文件数据前,XML 文件已经完全被加载且处理完毕。为了简单化,这些技术从本章先前范例中省略,但你可以在你自己的网页中运用这些技术。

列表9-10 显示有效性测试网页的内容。(你可以在随书光盘的Validity Test.htm 档案中找到列表9-10。)

Validity Test.htm

<!--File Name:Validity Test.htm -->

<HTML>

<HEAD>

<TITLE>Validity Tester</TITLE>

<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="ONLOAD">

Document =dsoTest.XMLDocument;

if (Document.readyState =4)

DisplayError ();

else

Document.onreadystatechange =DisplayError;

function DisplayError ()

{

if (Document.readyState !=4)

return;

message ="parseError.errorCode:"

+Document.parseError.errorCode +"\n"

+"parseError.filepos:"

+Document.parseError.filepos +"\n"

+"parseError.line:"

++Document.parseError.line

+"\n"

+"parseError.linepos:"

+Document.parseError.linepos +"\n"

+"parseError.reason:"

+Document.parseError.reason +"\n"

+"parseError.srcText:"

+Document.parseError.srcText +"\n"

+"parseError.url:"

++Document.parseError.url;

alert (message);

}

</SCRIPT>

</HEAD>

<BODY>

<!--Set SRC to the URL of the XML document you want to check:-->

<XML ID="dsoTest " SRC="Inventory.xml"></XML>

</BODY>

</HTML>

HTML 网页包含了一个script 程序,当浏览器第一次为网页开启窗口时会执行该script 程序:

<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="ONLOAD">

/*script code ...*/

</SCRIPT>

Script 程序首先将获得Document 节点:

Document =dsoTest.XMLDocument;

然后script 程序将测试Document 节点的readyState 属性。如果readyState 属性被设定为4,代表所有的XML 数据已经被加载并处理完毕,此时script 程序会立即呼叫DisplayError 函式来显示此文件的错误状态。然而,如果readyState 属性不是被设定成4,script 程序会将DisplayError函式指定给Document 节点的onreadystatechange 属性,导致每当readyState 属性改变时,浏览器将会呼叫DisplayError 函式来显示错误讯息:

if (Document.readyState =4)

DisplayError (); else Document.onreadystatechange =DisplayError;

表格9-3 描述了这些Document 属性。

如果readyState 属性还未被设定为4,函式DisplayError 会立即返回。(当属性readyState 被设定成4 时,函式DisplayError 将再被呼叫。)如果函式继续执行,将显示Document 节点的parseError 成员对象中所有的属性。这些属性彻底地描述XML 文件的错误状态:

function DisplayError ()

{

if (Document.readyState !=4)

return;

message ="parseError.errorCode:"

+Document.parseError.errorCode +"\n"

+"parseError.filepos:"

+Document.parseError.filepos +"\n"

+"parseError.line:" ++Document.parseError.line

+"\n"

+"parseError.linepos:"

+Document.parseError.linepos +"\n"

+"parseError.reason:"

+Document.parseError.reason +"\n"

+"parseError.srcText:"

+Document.parseError.srcText +"\n"

+"parseError.url:" ++Document.parseError.url;

alert (message);

}

如果文件中没有任何错误,parseError.errorCode 属性会被设定为0,而其它属性不是被设定为0 就是空白。如果文件中含有错误,属性parseError.errorCode 会包含一个错误数值码,而其它的属性会描述此错误的相关信息。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有