<?xml version='1.0' encoding='UTF-8'?>
<XHRDBOSS> 
<Response> 
<RspCode>200</RspCode> 
<RspDesc>操作成功</RspDesc> 
</Response> 
<Channel> 
<ChannelItem> 
<ChannelLanguage>1</ChannelLanguage> 
<OnLineNews> 
<TopicId>eco</TopicId> 
<TopicDesc></TopicDesc> 
<NewsInfo> 
<OnLineNewsDetail> 
<OnlineNewsId>222</OnlineNewsId> 
<NewsTitle>li</NewsTitle> 
<NewsContent>li111111</NewsContent> 
<NewsDate>2011-08-25 21:20</NewsDate> 
<Enclosure> 
<Url></Url> 
<Length>88271</Length> 
<Type>JPG</Type> 
</Enclosure> 
</OnLineNewsDetail> 
<OnLineNewsDetail> 
<OnlineNewsId>204</OnlineNewsId> 
<NewsTitle>sh</NewsTitle> 
<NewsContent>22222</NewsContent> 
<NewsDate>2011-08-25 21:20</NewsDate> 
<Enclosure> 
<Url></Url> 
<Length>88271</Length> 
<Type>JPG</Type> 
</Enclosure> 
</OnLineNewsDetail> 
                                        <OnLineNewsDetail>
                                                <OnlineNewsId>1032</OnlineNewsId>
……
</OnLineNewsDetail>
</NewsInfo>  
<TopicId>sports</TopicId> 
<TopicDesc></TopicDesc> 
<NewsInfo> 
<OnLineNewsDetail> 
<OnlineNewsId>223</OnlineNewsId> 
<NewsTitle>pi</NewsTitle> 
<NewsContent>a</NewsContent> 
<NewsDate>2011-08-25 22:56</NewsDate> 
<Enclosure> 
<Url></Url> 
<Length>1030870</Length> 
<Type>jpg</Type> 
</Enclosure> 
</OnLineNewsDetail> 
<OnLineNewsDetail> 
<OnlineNewsId>121</OnlineNewsId> 
<NewsTitle>shu</NewsTitle> 
<NewsContent>111</NewsContent> 
<NewsDate>2011-08-25 21:20</NewsDate> 
<Enclosure> 
<Url></Url> 
<Length>8366444</Length> 
<Type>JPG</Type> 
</Enclosure> 
</OnLineNewsDetail> 
                                        <OnLineNewsDetail>
                                                <OnlineNewsId>661</OnlineNewsId>
……
</OnLineNewsDetail>
</NewsInfo> 
</OnLineNews> 
</ChannelItem> 
</Channel> 
</XHRDBOSS>I_NO:<TopicId>eco=0 sports=1
I_TITLE:<NewsTitle>
I_CONTENT:<NewsContent>
表:
S_NO   I_NO   I_TITLE   I_CONTENT
1     0     li     li111111
2     0     sh     22222
3     ...     ...     ...
1     1     pi     a
2     1     shu     111   
3     ...     ...     ...
HttpWebRequest获取的源代码。要怎么提取这三个值并如上排序导入oracle(oracle已连接)?

解决方案 »

  1.   

    这样写么?
    Regex reg = new Regex(@"(?s)(?:<TopicId>(.*?)</TopicId>.*?<NewsTitle>(.*?)</NewsTitle>.*?<NewsContent>(.*?)</NewsContent>)*");
    然后该怎么办...怎么按照那个方式存入oracle?新手求照顾。
      

  2.   

    怎么写正则才比较好按照上面的那个方式存到oracle
      

  3.   

    用XML读取出来
    给你一个例子  希望有所参考 public void EditCustomerBasicInfo()
        {
            try
            {
                DataSetCustomer.CustomerBasicInfoDataTable dt = new DataSetCustomer.CustomerBasicInfoDataTable();
                DataSetCustomerTableAdapters.CustomerBasicInfoTableAdapter ta = new DataSetCustomerTableAdapters.CustomerBasicInfoTableAdapter();            byte[] byts = new byte[Request.InputStream.Length];
                Request.InputStream.Read(byts, 0, byts.Length);
                string req = System.Text.Encoding.UTF8.GetString(byts);
                XmlDocument xml = new XmlDocument();
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.ContentType = "text/xml ";
                xml.LoadXml(req);
                XmlNodeList topm = xml.DocumentElement.ChildNodes;
                foreach (XmlElement element in topm)
                {
                    if (element.Name.ToLower() == "row")
                    {
                        //得到该节点的子节点
                        XmlNodeList nodelist = element.ChildNodes;
                        if (nodelist.Count > 0)
                        {
                            string SSGSBH = null;
                            string XM = null;
                            string KHFL = null;
                            string GDDH = null;
                            string YDDH = null;
                            string CZ = null;
                            string DZ = null;
                            string HYBH = null;
                            string WZLX = null;
                            //....................
                            foreach (XmlNode el in nodelist)//读元素值
                            {
                                if (el.Name == "APPCHECK" && el.InnerText != WebPublic.GetAppCheckID())
                                {
                                    StringBuilder str = new StringBuilder();
                                    str.Append("<DATALIST>");
                                    str.Append("<MSG>1</MSG>");
                                    str.Append("</DATALIST>");
                                    byte[] bytes = Encoding.UTF8.GetBytes(str.ToString());
                                    Response.OutputStream.Write(bytes, 0, bytes.Length);
                                    Response.OutputStream.Flush();
                                    Response.OutputStream.Close();
                                    return;
                                }
                                else if (el.Name == "CZR")
                                {
                                    CZR = el.InnerText.Trim();
                                }
                            }
                            if (FHLX == "1")
                            {
                                JD = (JD == "" ? "0" : JD);
                                WD = (WD == "" ? "0" : WD);
                            }
                            else if (FHLX == "2")
                            {
                                //JD = (JD == "" ? "0" : JD);
                                //WD = (WD == "" ? "0" : WD);
                                //string latlon = new WebPublic().GetLatLng(JD, WD);
                                //string[] latlons = latlon.Split(',');//拆分经纬
                                //decimal latdeal = decimal.Parse(latlons[0]); //得到经度
                                //JD = latdeal.ToString();
                                //decimal lngdeal =decimal.Parse(latlons[1]); //得到纬度
                                //WD = lngdeal.ToString();
                                JD = "0";
                                WD = "0";
                            }
                            else if (FHLX == "3")
                            {
                                JD = "0";
                                WD = "0";
                            }
                            //........
                            int i = ta.P_EditCustomerBasicInfo(Guid.NewGuid().ToString(),SSGSBH, XM, KHFL, GDDH, YDDH, CZ, DZ, HYBH, WZLX, decimal.Parse(JD), decimal.Parse(WD), DQSSYHBH, BJRBH, CZR);
                            if (i == -1)
                            {
                                StringBuilder str = new StringBuilder();
                                str.Append("<DATALIST>");
                                str.Append("<MSG>01</MSG>");
                                str.Append("</DATALIST>");
                                byte[] bytes = Encoding.UTF8.GetBytes(str.ToString());
                                Response.OutputStream.Write(bytes, 0, bytes.Length);
                                Response.OutputStream.Flush();
                                Response.OutputStream.Close();
                            }
                            else
                            {
                               //
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
               //.......
            }
        }
    }
      

  4.   

    难点是怎么取才方便存入oracle。求思路。
      

  5.   

    要怎么取材好呢?要排序到oracle的。
      

  6.   


    大大要怎么取才好呢?需要排序到oracle的
      

  7.   

    HttpWebRequest获取的源代码stream怎么转换成XML?
      

  8.   

    1:HttpWebRequest获取的源代码
    2:使用正则表达式提取内容
    3:解析出你要的内容(如果你要排序的话你可以放在list<>中(list.sort()),或者其他容器数组)