解决jQuery在IE6下遍历XML的Bug!
参考博文《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,但是IE有个安全性限制的问题,会使jQuery无法正确解释XML数据,至于什么安全性,没兴趣深究,就当bug处理!作者原文的解释如下:
What happens is that the XML gets loaded into IE as a text object, then gets converted into usable XML data. Any other browsers get the XML data directly.
Bug原因:IE请求XML文件时,后将它作为文本对象加载,之后需要我们手动转成XML类型的数据才可以使用,而其他浏览器会直接装载XML类型数据。
所以在下面的代码中,solution1是无法正确工作的,solution2提供了变通的转换方案,问题解决!
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>123123123</title>
<mce:script type="text/javascript" src="jquery-1.3.2.min.js" mce_src="jquery-1.3.2.min.js"></mce:script>
<mce:script type="text/javascript"><!--
function test() {
/*
// solution 1
$.post('test.xml', null, function (data) {
var mydata = data;
alert('my');
alert($(mydata).find("user_id").eq(1).t
相关文档:
SQl Xml和C# Xml数据的一点操作总结
在此申明Xml是InfoSet数据不是字符串,所以在此强烈反对用string拼接xml。数据库可以存放xml类型数据,那么该数据的具体操作又如何了。
1.首先建立一张含有xml数据类型的表
CREATE TABLE [dbo].[TestXml](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Message] [xml] NULL ......
1 类似xmlns=""的文件
示例XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<WebSrvMessage xmlns="http://www.lenoval.com/">
<version>1.0</version>
<DataContent>
<DateTag>2010-5-17</DateTag>
</DataCont ......
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Xml;
using System.Text; ......
通过调用CreateDataSetfromXml取得XML数据
Imports System.Xml
Public Const FILE_CONFIG = "MZZ.xml"
Public Const PATH_CONFIG = "\XML\"
Dim dstXML As DataSet
Dim tblXML_DB As DataTable
Dim dtCod As New DataTable
Dim strSQL As String = ""
clsPublic ......