zoukankan      html  css  js  c++  java
  • JS解析DataSet.GetXML()方法产生的xml

    在实际的项目制作过程中,经常要采用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>供货价格将会&lt;&gt;asdasd</GG_BT>
        
    <LX_DM></LX_DM>
        
    <GG_NR>sdfsdf</GG_NR>
      
    </Table1>
    </NewDataSet>

    可以发现,本xml中的NewDataSet和Table1都为系统自动生成,而GG_BT,LX_DM,GG_NR均为数据库中的字段,并且,该方法生成的xml已经自动的将特殊字符"<>"转义成了"&lt;&gt;",那么这段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的核心方法,这样一来,不仅解决了数据传输的前后台交互问题,而且还避免了特殊字符的存在,真的是很方便。

  • 相关阅读:
    PDIUSBD12指令
    (转)USB的VID和PID,以及分类(Class,SubClass,Protocol)
    静态测试
    一种循环buffer结构
    RL78 芯片复位指令
    XModem协议
    位反转的最佳算法
    CCP 协议
    AUTOSAR 架构
    HEX 文件格式
  • 原文地址:https://www.cnblogs.com/scy251147/p/2007855.html
Copyright © 2011-2022 走看看