使用JavaScript + DTD验证XML格式是否正确

本文深入解析了DTD(Document Type Definition)在XML中的应用,包括DTD的结构、元素定义及属性列表,展示了如何在XML文件中引用DTD进行数据验证。同时,提供了使用JavaScript进行XML解析和错误检查的示例代码。

一、DTD:


 
<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ELEMENT NOTES (#PCDATA)>
 
<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>
 
<!ENTITY NEWSPAPER "Vervet Logic Times">
<!ENTITY PUBLISHER "Vervet Logic Press">
<!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">

二、XML:

引用DTD有两种方式,一种是将DTD包含于XML源文件中;另一种是封装在一个 DOCTYPE 定义中。

<!DOCTYPE 根元素 SYSTEM "文件名">

文件名是XML源文件的相对位置。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE NEWSPAPER SYSTEM "./test.dtd">
<NEWSPAPER>
	<ARTICLE>
		<HEADLINE></HEADLINE>
		<BYLINE></BYLINE>
		<LEAD></LEAD>
		<BODY></BODY>
		<NOTES></NOTES>
	</ARTICLE>
	<ARTICLE AUTHOR="wj" EDITOR="">
		
		<HEADLINE></HEADLINE>
		<BYLINE></BYLINE>
		<LEAD></LEAD>
		<BODY></BODY>
		<NOTES></NOTES>
	</ARTICLE>
</NEWSPAPER>

三、JavaScript:


<html>
<body>
<script type="text/javascript">

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")//创建一个xml dom对象,仅适用于IE浏览器
xmlDoc.async="false"//是否异步性
xmlDoc.validateOnParse="true"
xmlDoc.load("test.xml")

if (xmlDoc.parseError.errorCode != 0) {
          txt = "Error Code: " + xmlDoc.parseError.errorCode + "\n";
          txt = txt + "Error Reason: " + xmlDoc.parseError.reason;
          txt = txt + "Error Line: " + xmlDoc.parseError.line;
          alert(txt);
        }
      else {
        alert('No errors found');
      }
        
</script>

</body>
</html>

运行如图所示:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值