=波波日志 > HTML/WML/CSS兼容/XML > IE解析XML文档碰到DTD声明出错=
IE解析XML文档碰到DTD声明出错
IE解析XML文档碰到DTD声明出错
在IE浏览器下查看xml文件,如果使用了DTD外部申明,DTD文件中如果有中文字符,则DTD文件需要存储为utf-8的编码,要不在IE下浏览使用了外部申明的XML文件时,解析DTD文件会出错。
而使用内部的 DOCTYPE 声明时,XML文件不需要一定存储为utf-8,只需要存储编码和xml申明的编码一致就行,要不出错。
总结如下
一,使用内部的 DOCTYPE 声明,XML申明指定编码需要和XML文件的实际存储编码一致。
1)如果XML申明指定编码为“gb2312”,则存储编码要为“ANSI”。
2)如果XML申明指定编码为“utf-8”,则存储编码要设置为“utf-8”。
二,使用外部DTD文件,如果DTD文件中存在中文字符,则DTD文件需要存储为“utf-8”的编码,要不在IE浏览器下解析DTD文件出错。XML文件编码和第一点说的要一致。
内部的 DOCTYPE 声明举例,此例子xml申明了编码为utf-8,所以文件存储编码一定要为utf-8的,如果为ANSI格式,则任何浏览器都会解析出错。
使用外部DTD文件
1)不包含中文的DTD文件,则DTD存储编码为ANSI或者utf-8都可以
XML文件
DTD文件
2)包含中文的DTD文件,则DTD存储编码一定要为utf-8,要不IE下解析DTD文件出粗
XML文件
DTD文件,再次强调存储编码一定要为utf-8,要不IE下出错
更改存储编码的文章
巧用记事本更换文本类型文件的存储编码
在IE浏览器下查看xml文件,如果使用了DTD外部申明,DTD文件中如果有中文字符,则DTD文件需要存储为utf-8的编码,要不在IE下浏览使用了外部申明的XML文件时,解析DTD文件会出错。
而使用内部的 DOCTYPE 声明时,XML文件不需要一定存储为utf-8,只需要存储编码和xml申明的编码一致就行,要不出错。
总结如下
一,使用内部的 DOCTYPE 声明,XML申明指定编码需要和XML文件的实际存储编码一致。
1)如果XML申明指定编码为“gb2312”,则存储编码要为“ANSI”。
2)如果XML申明指定编码为“utf-8”,则存储编码要设置为“utf-8”。
二,使用外部DTD文件,如果DTD文件中存在中文字符,则DTD文件需要存储为“utf-8”的编码,要不在IE浏览器下解析DTD文件出错。XML文件编码和第一点说的要一致。
内部的 DOCTYPE 声明举例,此例子xml申明了编码为utf-8,所以文件存储编码一定要为utf-8的,如果为ANSI格式,则任何浏览器都会解析出错。
+展开
-XML
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE library [
<!--######library.dtd文档#####-->
<!ELEMENT 电影 (名字,格式)>
<!ATTLIST 电影 id ID #REQUIRED>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 格式 (#PCDATA)>
]>
<library>
<电影 id="1">
<名字>投名状</名字>
<格式>DVD</格式>
</电影>
<电影 id="2">
<名字>集结号</名字>
<格式>VCD</格式>
</电影>
<电影 id="3">
<名字></名字>
<格式></格式>
</电影>
</library>
<!DOCTYPE library [
<!--######library.dtd文档#####-->
<!ELEMENT 电影 (名字,格式)>
<!ATTLIST 电影 id ID #REQUIRED>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 格式 (#PCDATA)>
]>
<library>
<电影 id="1">
<名字>投名状</名字>
<格式>DVD</格式>
</电影>
<电影 id="2">
<名字>集结号</名字>
<格式>VCD</格式>
</电影>
<电影 id="3">
<名字></名字>
<格式></格式>
</电影>
</library>
使用外部DTD文件
1)不包含中文的DTD文件,则DTD存储编码为ANSI或者utf-8都可以
XML文件
+展开
-XML
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
DTD文件
+展开
-XML
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
2)包含中文的DTD文件,则DTD存储编码一定要为utf-8,要不IE下解析DTD文件出粗
XML文件
+展开
-XML
<?xml version="1.0" encoding="gb2312" standalone="no"?>
<!DOCTYPE library SYSTEM "library.dtd">
<library>
<电影 id="1">
<名字>投名状</名字>
<格式>DVD</格式>
</电影>
<电影 id="2">
<名字>集结号</名字>
<格式>VCD</格式>
</电影>
<电影 id="3">
<名字></名字>
<格式></格式>
</电影>
</library>
<!DOCTYPE library SYSTEM "library.dtd">
<library>
<电影 id="1">
<名字>投名状</名字>
<格式>DVD</格式>
</电影>
<电影 id="2">
<名字>集结号</名字>
<格式>VCD</格式>
</电影>
<电影 id="3">
<名字></名字>
<格式></格式>
</电影>
</library>
DTD文件,再次强调存储编码一定要为utf-8,要不IE下出错
+展开
-XML
<!--######library.dtd文档#####-->
<!ELEMENT library (电影+)>
<!ELEMENT 电影 (名字,格式)>
<!ATTLIST 电影 id ID #REQUIRED>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 格式 (#PCDATA)>
<!ELEMENT library (电影+)>
<!ELEMENT 电影 (名字,格式)>
<!ATTLIST 电影 id ID #REQUIRED>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 格式 (#PCDATA)>
更改存储编码的文章
巧用记事本更换文本类型文件的存储编码
类别:HTML/WML/CSS兼容/XML 作者:波波 日期:2010-07-21 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·IE对CSS样式表的限制..
- ·HTML 5 WebSocket J..
- ·html5 websocket 通..
- ·Firefox上传文件获取..
- ·javascript获取file..
- ·URL转码方法及不能被..
- ·IE/Firefox/W3C浏览..
- ·CLIP: rect 是什么?
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(598)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(96)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(25)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
随机博文
