使用JavaScript + DTD验证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>

运行如图所示:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值