JS解析DataSet.GetXML()方法产生的xml
2011-04-07 14:03
302 查看
在实际的项目制作过程中,经常要采用ajax方式来进行,当然,这就免不了要进行数据交换。如果采用拼接字符串的方式来进行,不仅拼接的时候麻烦,而且在拆解的时候更加麻烦,一旦遇到特殊字符,那么就是灾难了。因此,现在目前流行的都是使用xml或者是json方式来进行。
下面来说明利用xml方式来进行数据传输的方式,首先看后台数据的形成:
private void GetInfo(string eventArgument)
{
string _splitVal = eventArgument.Split('|')[0];
if (_splitVal.Equals("getInfo"))
{
string sql = @"SELECT a.gg_bt,b.lx_dm,a.gg_nr
FROM DB_ZGFZ.T_NSFW_GGGL_ZB A
LEFT JOIN DB_ZGFZ.T_NSFW_GGGL_DM_GGLX B
ON A.GG_LXDM = B.LX_DM
WHERE a.gg_id='"+eventArgument.Split('|')[1]+"'";
DataTable dt = this.m_CommonBLL.ADONETHelper.GetDataTableBySQL(CommandType.Text, sql);
if (dt != null)
{
if (dt.Rows.Count > 0)
{
DataSet ds=new DataSet();
ds.Tables.Add(dt);
_str=ds.GetXml();
}
}
}
}
当然,这段代码就是利用了DataSet的GetXml()方式来进行,产生的XML数据结构如下:
<NewDataSet>
<Table1>
<GG_BT>供货价格将会<>asdasd</GG_BT>
<LX_DM>2 </LX_DM>
<GG_NR>sdfsdf</GG_NR>
</Table1>
</NewDataSet>
可以发现,本xml中的NewDataSet和Table1都为系统自动生成,而GG_BT,LX_DM,GG_NR均为数据库中的字段,并且,该方法生成的xml已经自动的将特殊字符"<>"转义成了"<>",那么这段xml数据如何在前台进行解析呢?
前台解析代码如下:
var xmlDoc = new ActiveXObject("MSXML2.DOMDocument");
xmlDoc.loadXML(arg);
var gg_bt=xmlDoc.selectNodes("NewDataSet/Table1/GG_BT")[0].text;
var gg_type=xmlDoc.selectNodes("NewDataSet/Table1/LX_DM")[0].text;
var gg_nr=xmlDoc.selectNodes("NewDataSet/Table1/GG_NR")[0].text;
$("#txtTitle").val(gg_bt);
$("#ddlType option[value='"+gg_type+' '+"']").attr("selected",true);
$("#txtNR").val(gg_nr);
上面代码中的黄色标注部分就是解析xml的核心方法,这样一来,不仅解决了数据传输的前后台交互问题,而且还避免了特殊字符的存在,真的是很方便。
下面来说明利用xml方式来进行数据传输的方式,首先看后台数据的形成:
private void GetInfo(string eventArgument)
{
string _splitVal = eventArgument.Split('|')[0];
if (_splitVal.Equals("getInfo"))
{
string sql = @"SELECT a.gg_bt,b.lx_dm,a.gg_nr
FROM DB_ZGFZ.T_NSFW_GGGL_ZB A
LEFT JOIN DB_ZGFZ.T_NSFW_GGGL_DM_GGLX B
ON A.GG_LXDM = B.LX_DM
WHERE a.gg_id='"+eventArgument.Split('|')[1]+"'";
DataTable dt = this.m_CommonBLL.ADONETHelper.GetDataTableBySQL(CommandType.Text, sql);
if (dt != null)
{
if (dt.Rows.Count > 0)
{
DataSet ds=new DataSet();
ds.Tables.Add(dt);
_str=ds.GetXml();
}
}
}
}
当然,这段代码就是利用了DataSet的GetXml()方式来进行,产生的XML数据结构如下:
<NewDataSet>
<Table1>
<GG_BT>供货价格将会<>asdasd</GG_BT>
<LX_DM>2 </LX_DM>
<GG_NR>sdfsdf</GG_NR>
</Table1>
</NewDataSet>
可以发现,本xml中的NewDataSet和Table1都为系统自动生成,而GG_BT,LX_DM,GG_NR均为数据库中的字段,并且,该方法生成的xml已经自动的将特殊字符"<>"转义成了"<>",那么这段xml数据如何在前台进行解析呢?
前台解析代码如下:
var xmlDoc = new ActiveXObject("MSXML2.DOMDocument");
xmlDoc.loadXML(arg);
var gg_bt=xmlDoc.selectNodes("NewDataSet/Table1/GG_BT")[0].text;
var gg_type=xmlDoc.selectNodes("NewDataSet/Table1/LX_DM")[0].text;
var gg_nr=xmlDoc.selectNodes("NewDataSet/Table1/GG_NR")[0].text;
$("#txtTitle").val(gg_bt);
$("#ddlType option[value='"+gg_type+' '+"']").attr("selected",true);
$("#txtNR").val(gg_nr);
上面代码中的黄色标注部分就是解析xml的核心方法,这样一来,不仅解决了数据传输的前后台交互问题,而且还避免了特殊字符的存在,真的是很方便。
相关文章推荐
- JS解析DataSet.GetXML()方法产生的xml
- jQuery解析XML文件同时动态增加js文件的方法
- JS实现兼容各浏览器解析XML文档数据的方法
- js解析xml字符串或xml文件,将其转换为xml对象方法
- JS实现兼容各浏览器解析XML文档数据的方法
- Dom4j递归解析XML实现JS的getElementsByName类似方法
- jQuery解析XML文件同时动态增加js文件的方法
- Dom4j递归解析XML实现JS的getElementsByName类似方法
- js解析xml字符串或xml文件,将其转换为xml对象方法
- Php Xml解析之DOMDocument使用方法浅解
- 详解Java解析XML的四种方法【转载】
- 使用jquery解析XML的方法
- JS使用ajax从xml文件动态获取数据显示的方法
- js解析XML
- JS解析json数据并将json字符串转化为数组的实现方法
- 大XML文件解析入库的一个方法
- js原生创建封装ajax的方法,附XMLHttpRequest状态码
- JS&nbsp;解析&nbsp;JSON&nbsp;及&nbsp;XML
- Android中XML解析模块的使用方法
- 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)