XML文档读取错误

flymyhelp 2010-07-20 06:46:44
刚学ajax不久
遇到了一个错误

function getSubject()
{
var xmlDoc;
if(window.ActiveXObject)
{
//创建IE浏览器操作的xml文件的对象
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
}
//加载xml文档
xmlDoc.async = false;
xmlDoc.load("library.xml");
if(xmlDoc == null)
{
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
return;
}
//解析xml文件,判断是否出错
if(xmlDoc.parseError.errorCode != 0)
{
alert(xmlDoc.parseError.reason);
return;
}
alert("加载成功");
//获得根接点
var root = xmlDoc.documentElement;
alert(root);
return;
}


<?xml version="1.0" encoding="gb2312" standalone="no"?>
<!DOCTYPE library SYSTEM "library.dtd">
<library>
<电影 id="1">
<名字>投名状</名字>
<格式>DVD</格式>
</电影>
<电影 id="2">
<名字>集结号</名字>
<格式>VCD</格式>
</电影>
<电影 id="3">
<名字></名字>
<格式></格式>
</电影>
</library>

<!--######library.dtd文档#####-->
<!ELEMENT library (电影+)>
<!ELEMENT 电影 (名字,格式)>
<!ATTLIST 电影 id ID #REQUIRED>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 格式 (#PCDATA)>


出现了以下错误


但换了一个纯英文的XML又正常,什么原因呢?
...全文
161 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
flymyhelp 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 showbo 的回复:]

编码的问题,DTD文件如果存在中文,编码要指定为utf-8的。

全部统一成utf-8的,xml文件和dtd文件的存储编码也要修改为utf-8的,参考
IE解析XML文档碰到DTD声明出错
巧用记事本更换文本类型文件的存储编码
[/Quote]
还是不行啊,按照你说的把DTD文件转换为UTF-8,XML申明为UTF-8,还是存在那个错误,申明问题?
  • 打赏
  • 举报
回复
编码的问题,DTD文件如果存在中文,编码要指定为utf-8的。

全部统一成utf-8的,xml文件和dtd文件的存储编码也要修改为utf-8的,参考
IE解析XML文档碰到DTD声明出错
巧用记事本更换文本类型文件的存储编码
hoojo 2010-07-21
  • 打赏
  • 举报
回复
用IE8的开发工具,调试下xmlDoc
flymyhelp 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zoujp_xyz 的回复:]

引用 2 楼 ibm_hoojo 的回复:

引用 1 楼 javagxc 的回复:

把 encoding="gb2312" 换成UTF-8试下。

+
应该是编码问题

有可能。。。
[/Quote]
试过了,还是不行,出现的问题是在IE8打开出现错误,FF正常,不知道是不是IE不能解析DTD。。而用XSD文档规范的xml文档显示正常。。
flymyhelp 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 javagxc 的回复:]

把 encoding="gb2312" 换成UTF-8试下。
[/Quote]
还是无形,现实一样的错误
zoujp_xyz 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ibm_hoojo 的回复:]

引用 1 楼 javagxc 的回复:

把 encoding="gb2312" 换成UTF-8试下。

+
应该是编码问题
[/Quote]
有可能。。。
hoojo 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 javagxc 的回复:]

把 encoding="gb2312" 换成UTF-8试下。
[/Quote]
+
应该是编码问题
javagxc 2010-07-20
  • 打赏
  • 举报
回复
把 encoding="gb2312" 换成UTF-8试下。

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧