xml编程_cdata_实体字符_处理指令_dtd快速入门_编程校验xml

作者: 鲁智深 分类: PHP 发布时间: 2015-08-19 11:47

CDATA节

有些内容可能不想让解析引擎解析执行,而是当作原始内容处理,用与把整段文本解释为纯字符数据而不是标记的情况。包含大量<、>、&或者”字符。CDATA节中的所有字符都会被当作元素字符数据的常量部分,而不是xml标记。

语法:

1
2
3
<![CDATA[
    ................
]]>

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
    <bj>
    <stu stuNo="0&lt;0&amp;1">
    <name>孙悟空</name>
    <sex></sex>
    <age>18</age>
    <img><![CDATA[$^&()]]></img>
    </stu>
    <stu stuNo="002">
    <name>白骨精</name>
    <sex></sex>
    <age>180</age>
    <img><![CDATA[$^&()3423423423]]></img>
    </stu>
    </bj>

处理指令

xml中的处理指令PI(processing instruction),用来解析引擎如何解析xml文档内容。

1
<?xml-stylesheet type="text/css" href="style.css"?>

可以用于数据显示,例如xml-stylesheet指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
   <!--xml文件也可以使用css修饰-->
<?xml-stylesheet type="text/css" href="style.css"?>
    <bj>
    <stu stuNo="0&lt;0&amp;1">
    <name>孙悟空</name>
    <sex></sex>
    <age>18</age>
    <img><![CDATA[$^&()]]></img>
    </stu>
    <stu stuNo="002">
    <name>白骨精</name>
    <sex></sex>
    <age>180</age>
    <img><![CDATA[$^&()3423423423]]></img>
    </stu>
    </bj>

css样式

1
2
3
name{font-size:20px;font-weight:bold;color:red;}
sex{font-size:20px;font-weight:bold;color:red;}
age{font-size:20px;font-weight:bold;color:red;}

DTD文档类型定义

xml约束

在xml技术里,可以编写一个dtd文档来约束一个xml文档的书写规范,这称之为xml约束。dtd的主要用处约束xml,也可以约束html ,xhtml。

常用的约束技术

DTD,scheme

dtd引入

1
<!DOCTYPE 根元素名 SYSTEM "dtd路径">

xml文件(xml03.xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<!--引入dtd文档-->
<!DOCTYPE bj SYSTEM "mydtd.dtd">
    <bj>
    <stu>
    <name>孙悟空</name>
    <sex></sex>
    <age>18</age>
    <img><![CDATA[$^&()]]></img>
    </stu>
    <stu>
    <name>白骨精</name>
    <sex></sex>
    <age>180</age>
    <img><![CDATA[$^&()3423423423]]></img>
    </stu>
    </bj>

dtd文档(mydtd.dtd)

1
2
3
4
5
6
7
<!ELEMENT bj (stu+)>
<!ELEMENT stu (name,sex,age,img)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT img (#PCDATA)>
<strong>注意</strong>

dtd校验文件(chekdtd.html)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
     <title>测试dtd</title>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <script language="javascript">
         //创建一个xml解析器
         var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
         //开启校验功能
         xmldoc.validateOnParse =true;
         //指定xml文件校验
         xmldoc.load("xml03.xml");
         //如果有错误信息,则输出
         document.write("错误信息="+xmldoc.parseError.reason+"<br/>");
         document.write("错误行号="+xmldoc.parseError.line+"<br/>");
     </script>
</head>
</html>

1、在默认情况下,浏览器不去检测dtd验证,我们需要自己写代码测试;

2、检测代码在ie浏览器下可正常使用,不支持谷歌;

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注