为了让你的解析器能够明白这些字符,你必须在XML文档中统一的字符编码标准。
--------------------------------------------------------------------------------
Windows 95/98 记事本
Windows 95/98 记事本不能以Unicode的编码格式保存文件。
可以使用记事本来编辑和保存包含了外文字符的XML文档 (比如:挪威语或者法语或者中文)
<?xml version="1.0"?>
<note>
<from>小奀</from>
<to>小林</to>
<message>晚上一起去火锅呀</message>
</note>
但是如果你用浏览器打开这个用记事本编辑过的XML文档,将会出现一个错误。
--------------------------------------------------------------------------------
在Windows 95/98 记事本中使用编码
Windows 95/98 记事本编辑XML文件必须进行编码属性设置。
为了避免发生错误,可以在XML文档声明中加上一个encoding属性,指明此XML文档的编码类型,但是不要使用Unicode编码。
下面的编码类型不会导致错误,, 并且汉字显示正常:
<?xml version="1.0" encoding="gb2312"?>
下面的编码类型不会导致错误,, 并且汉字显示正常:
<?xml version="1.0" encoding="gbk"?>
下面的编码类型不会导致错误,, 并且汉字显示不正常(乱码):
<?xml version="1.0" encoding="windows-1252"?>
下面的编码类型不会导致错误,, 并且汉字显示不正常(乱码):
<?xml version="1.0" encoding="ISO-8859-1"?>
下面的编码类型不会导致错误,,并且汉字显示正常:
<?xml version="1.0" encoding="UTF-8"?>
下面的编码类型会导致错误,:
<?xml version="1.0" encoding="UTF-16"?>
--------------------------------------------------------------------------------
使用Windows 2000 记事本
Windows 2000 记事本可以以Unicode编码格式保存文件。
Windows 2000 的记事本支持Unicode字符集。如果使用Win2000的记事本以Unicode的编码格式保存XML文档(请注意这里在XML声明中没有编码信息):
<?xml version="1.0"?>
<note><from>小奀</from><to>小林</to><message>晚上一起去火锅呀</message></note>
--------------------------------------------------------------------------------
Windows 2000 记事本编码
Windows 2000记事本还可以以"UTF-16"编码格式保存文件。
如果你在XML文档中声明了编码属性而又以Unicode编码格式保存文件,将可能发生错误。
下面的代码将会导致错误:
<?xml version="1.0" encoding="windows-1252"?>
下面的代码将会导致错误:
<?xml version="1.0" encoding="ISO-8859-1"?>
下面的代码将会导致错误:
<?xml version="1.0" encoding="UTF-8"?>
下面这个文件note_encode_utf16_u.xml, 将会在IE5.0+中显示正常,在网景Netscape 6.2浏览器中将会出现错误。
<?xml version="1.0" encoding="UTF-16"?>
--------------------------------------------------------------------------------
错误信息
当时用IE5.0或者更高版本浏览XML文档时,可能会遇到两中不同的编码错误:
在文本内容中发现一个非法字符(An invalid character was found in text content)。
如果你的XML文档和你的XML文档的编码格式不匹配就可能导致错误发生。通常情况是,XML文档包含一些“非英文”字符,并且使用了单字节编码的编辑器,而且没有在XML文档的声明中设置XML文档的编码格式。
不支持从当前的编码格式转换成另一种编码格式(Switch from current encoding to specified encoding not supported)。
如果XML文档以Unicode/UTF-16编码格式保存,但是XML文档的声明中却设置了编码格式是一些单字节的编码(比如 Windows-1252, ISO-8859-1 或者 UTF-8);或者XML文档以单字节编码格式保存,但是XML文档的声明中却设置了编码格式是一些Unicode/UTF-16的编码形式,这样两种情况都会导致错误发生。
--------------------------------------------------------------------------------
结论
结论:在保存XML文档之前在XML文档的声明中设置文档的编码格式,我的一些关于避免错误发生的建议:
使用一种支持Unicode编码格式的编辑器。
确信你知道自己正在使用那种编码格式。
在XML文档中使用属性声明设置编码格式。
很简单, XML是由序言和文档元素组成的。 序言包括: 1.声明:文档的第一行,它说明这是一个XML文档。 [可选] 2.注释:增强文档的可读性。 [可选] 3.文档类型声明:XML文档类型定义必须在XML声明之后,文档元素之前,中间可以插入XML处理指令,它说明文档的类型和结构。[可选] 4.处理指令:在XML声明之后,处理XML信息的指令。 [可选] 注:文档类型声明:需要用到xml词汇表。 举例: 先看代码: <?xml version="1.0" encoding="gb2312" standalone="yes"?><!--xml注释--><!DOCTYPE ChooseFlash><!--<!DOCTYPE 类型 SYSTEM "一个dtd文件的地址" >没有地址或地址错误都会出错,SYSTEM 一个关键字--><?xml-stylesheet type="text/css" href="处理xml文档信息的css.css"?><元素><子元素 属性="子元素">信息</子元素></元素>上面是一个加了文档类型声明,处理指令的简单xml文档。下面一一解释。 <?xml version="1.0" encoding="gb2312"?>这句是xml 的声明信息。version 是版本号,encoding 是字符编码,如果有中文就需要用gb2312 编码,standalone 属性可以取yes和no,属性值yes,说明文档没有外部声明。属性值no,说明文档有外部声明。 <!--xml注释-->这句是xml的注释。 <!DOCTYPE ChooseFlash>这句是文档类型声明,DOCTYPE标记是声明类型用的,ChooseFlash是类型,这里的类型是指xml中的词汇表。 <?xml-stylesheet type="text/css" href="处理xml文档信息的css.css"?>这句是处理指令,xml-stylesheet是一个处理指令,type是类型,href是地址。这个处理指令把CSS链接到XML文档,跟html中应用css差不多一样。 <元素><子元素 属性="子元素">信息</子元素></元素>这是文档元素(Flash用节点表示)。<元素>是顶层元素,<子元素>是嵌套在顶层元素中的元素,“属性”是一个属性,“信息”是字符串,也可以这样写: <子元素 属性="子元素" 信息="信息" />如果用了文档类型声明,顶层元素命名最好跟声明的类型一至。否则会出错(要有词汇表时,像这个ChooseFlash这不会出错,因为没有这个词汇表。) 下面是一个完整xml文档:<?xml version="1.0" encoding="gb2312"?><!--firstNode是一个顶层元素--><firstNode><!--childNode是一个嵌套在顶层元素firstNode中的子级元素,有一个nodeName的属性--><childNode nodeName="childNode">childNode</childNode></firstNode>求采纳
</list>是指的这种吗?<list>aaa</list>,list这个元素标记是成对出现的,前面的list表示标记开始,中间(aaa)是数据,后面加了斜线的list表示标记结束。
还是指的这个:<list/>。这个就等于<list></list>。当内容为空时,可以简写为<list/>.
不明白的再问哟,望及时采纳,多谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)