参考博文《IE下利用jQuery分析XML》地址:http://www.newmediafun.com/2009/07/parsing-xml-with-jquery-in-internet-explorer/
本来以为jQuery会很好的解决所有浏览器兼容性问题,但是阵亡的IE6还是会找麻烦!
jQuery使用AJAX时,在IE6下读取回传到XML数据会有问题,具体看下面的例子吧。
准备数据文件test.xml
<ArrayOfManagement_Contact>
<Management_Contact>
<user_id>123457</user_id>
<tel_type>2</tel_type>
<tel>879</tel>
<visibility>0</visibility>
<del_flg>0</del_flg>
<id>537</id>
</Management_Contact>
<Management_Contact>
<user_id>123457</user_id>
<tel_type>2</tel_type>
<tel>54645</tel>
<visibility>0</visibility>
<del_flg>0</del_flg>
<id>538</id>
</Management_Contact>
</ArrayOfManagement_Contact>
正常情况下可以使用 $.get / $.post ......
所有 XML 文档中的文本均会被解析器解析。
只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。
Parsed Data
XML 解析器通常会解析 XML 文档中所有的文本。
当某个 XML 元素被解析时,其标签之间的文本也会被解析:
<message>此文本也会被解析</message>
解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的 <name> 元素包含着另外的两个元素(first 和 last):
<name><first>Bill</first><last>Gates</last></name>
而解析器会把它分解为像这样的子元素:
<name>
<first>Bill</first>
<last>Gates</last>
</name>
转义字符
非法的 XML 字符必须被替换为实体引用(entity reference)。
假如您在 XML 文档中放置了一个类似 "<" 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:
<message>if salary < 1000 then</message>
为了避免此类错误,需要把字符 "<" 替换为实体引用,就像这样:
<message>if salary < 1000 then</message> ......
XML和HTML常用转义字符
XML和HTML中都有一些特殊的字符,这些字符在XML和HTML中是不能直接使用的,如果必须使用这些字符,应该使用其对应的转义字符。
如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。
所以不应该像下面那样书写代码:
<message>if salary < 1000 then</message>
为了避免出现这种情况,必须将字符"<" 转换成“<”,如下面这样:
<message>if salary < 1000 then</message>
XML常用转义字符:
字符
转义字符
描述
&
&
和
<
<
小于号
>
>
大于号
"
"
双引号
'
'
单引号
HTML中<, >,&等有特殊含义,(前两个字符用于链接签,&用于转义),不能直接使用。使用这三个字符时,应使用它们的转义字符。
HTML常用转义字符:
字符
转义字符
描述
&
&
和
<
<
小于号
>
>
大于号
"
"
双引号
空格
©
©
版权符
®
®
注册符
T ......
XML和HTML常用转义字符
XML和HTML中都有一些特殊的字符,这些字符在XML和HTML中是不能直接使用的,如果必须使用这些字符,应该使用其对应的转义字符。
如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。
所以不应该像下面那样书写代码:
<message>if salary < 1000 then</message>
为了避免出现这种情况,必须将字符"<" 转换成“<”,如下面这样:
<message>if salary < 1000 then</message>
XML常用转义字符:
字符
转义字符
描述
&
&
和
<
<
小于号
>
>
大于号
"
"
双引号
'
'
单引号
HTML中<, >,&等有特殊含义,(前两个字符用于链接签,&用于转义),不能直接使用。使用这三个字符时,应使用它们的转义字符。
HTML常用转义字符:
字符
转义字符
描述
&
&
和
<
<
小于号
>
>
大于号
"
"
双引号
空格
©
©
版权符
®
®
注册符
T ......
xml:
<?xml version="1.0" encoding="utf-8" ?>
<library>
<name>首都图书馆</name>
<address>朝阳区华威桥南</address>
<books>
<book type="math">
<id>0000</id>
</book>
<book type="computer">
<id>0001</id>
<name>Xml初学</name>
<publisher>人民出版社</publisher>
<publishdate>2010-05-0-18</publishdate>
<fee>100.54</fee>
</book>
<book type="computer">
<id>0002</id>
<name>XSD定义</name>
<author>子弟</author>
<publisher>子弟出版社</publisher>
<publishdate>2010-05-0-18</publishdate>
  ......
译自Vault API帮助文档中一篇 Doug Redmond写的knowledgebase article. Doug's 博客是 It's All Just Ones and Zeros
你也许不知道所有Vault API 类都可以 XML 序列化 - 这意味着很容易把API对象转换为 XML 文本,反之亦然。
很多种情况下可以使用此功能,例如:
它可以帮助您调试代码。如果您具有大量数据的对象,将该对象存为XML格式方便研究。
如果您向ADN提交问题,可以将XML序列化的对象作为您的问题说明的一部分。
存储信息供以后使用。只需记住,此信息在下一版本中可能会更改。
您可以使用XML序列化后的信息作为检测对象是否已发生变更的参照物。例如您编写了一个设置生命周期的程序,您希望您的程序检测到是否有人干预了生命周期设置。
下面是一些Vault API XML 序列化的示例代码:
C#:
private bool DidItChange(LfCycDef def)
{
// serialize the object
StringBuilder currentXML = new StringBuilder();
XmlSerializer serializer = new XmlSerializer(typeof(DocEx.LfCycDef));
using (TextWriter writer = new String ......
<?xml version="1.0"?>
<BANK_CREATE01>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<MANDT>110</MANDT>
<DOCNUM>1</DOCNUM>
<DOCREL>710</DOCREL>
<DIRECT>2</DIRECT> &nb ......