如何在PHP中对XML文件进行DTD和架构验证

如何在PHP中对XML文件进行DTD和架构验证,第1张

外部dtd:

[php] view plain copy

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

<!-- 一定要保证文件的保存的编码的方式和utf-8一致 -->

<!--引入dtd -->

<!DOCTYPE 班级 SYSTEM "classes2.dtd">

<班级>

<学生>

<名字>张三</名字>

<年龄>23</年龄>

<介绍>努力学习</介绍>

</学生>

<学生>

<名字>李四</名字>

<年龄>23</年龄>

<介绍>三好学生</介绍>

</学生>

</班级>

内部dtd:

[php] view plain copy

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

<!-- 一定要保证文件的保存的编码的方式和utf-8一致 -->

<span style="color:#ff0000"><!--引入dtd -->

<!DOCTYPE 班级 [

<!ELEMENT 班级 (学生+)>

<!ELEMENT 学生 (名字,年龄,介绍)>

<!ELEMENT 名字 (#PCDATA)>

<!ELEMENT 年龄 (#PCDATA)>

<!ELEMENT 介绍 (#PCDATA)>

]></span>

<班级>

<学生>

<名字>张三</名字>

<年龄>23</年龄>

<介绍>努力学习</介绍>

<面积>20</面积>

</学生>

<学生>

<名字>李四</名字>

<年龄>23</年龄>

<介绍>三好学生</介绍>

</学生>

</班级>

=================我只是一条分隔线========================

dtd验证

test.xml

[php] view plain copy

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

<!-- 一定要保证文件的保存的编码的方式和utf-8一致 -->

<!--引入dtd -->

<!DOCTYPE 班级 SYSTEM "test.dtd">

<班级>

<学生>

<名字>张三</名字>

<年龄>23</年龄>

<介绍>努力学习</介绍>

<面积>20</面积>

</学生>

<学生>

<名字>李四</名字>

<年龄>23</年龄>

<介绍>三好学生</介绍>

</学生>

</班级>

test.dtd

[php] view plain copy

<!ELEMENT 班级 (学生+)>

<!ELEMENT 学生 (名字,年龄,介绍)>

<!ELEMENT 名字 (#PCDATA)>

<!ELEMENT 年龄 (#PCDATA)>

<!ELEMENT 介绍 (#PCDATA)>

checkdtd.html

[php] view plain copy

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=utf-8">

<title>测试dtd</title>

</head>

<body>

<script type="text/javascript">

//创建xml文档解析器对象

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

//开启xml校验

xmlDoc.validateOnParse=true

//转载xml文档

xmlDoc.load("test.xml")

//获取错误信息

document.write("错误信息:"+xmlDoc.parseError.reason+"<br/>")

document.write("错误行号:"+xmlDoc.parseError.line)

</script>

</body>

</html>

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

<!ELEMENT book (PERSON)*>

<!ELEMENT PERSON (name,address,phone,email?)>

<!ELEMENT phone (#PCDATA | officetel | hometel | mobile)*>

<!ELEMENT officetel (#PCDATA)>

<!ELEMENT name (#PCDATA)>

<!ATTLIST name sex (男 | 女) #REQUIRED>

<!ELEMENT mobile (#PCDATA)>

<!ELEMENT hometel (#PCDATA)>

<!ELEMENT email (#PCDATA)>

<!ELEMENT address (#PCDATA)>

<!ATTLIST address postcode CDATA #IMPLIED>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12099133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存