提取源代码内容导入数据库 新手求教

Sega_Jo 2011-09-15 01:28:18
<?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已连接)?
...全文
124 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
poker_one 2011-09-16
  • 打赏
  • 举报
回复
都是牛人
cuiweibin5 2011-09-16
  • 打赏
  • 举报
回复
1:HttpWebRequest获取的源代码
2:使用正则表达式提取内容
3:解析出你要的内容(如果你要排序的话你可以放在list<>中(list.sort()),或者其他容器数组)
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sega_jo 的回复:]
引用 1 楼 bdmh 的回复:

正则或xmldocument


大大要怎么取才好呢?需要排序到oracle的
[/Quote]

排序的目的是方便用户查询,排序到数据库给谁看?
首要目的是导入数据库,管它什么顺序,再者,到时候用户按什么排序还不知道呢!
Sega_Jo 2011-09-15
  • 打赏
  • 举报
回复
HttpWebRequest获取的源代码stream怎么转换成XML?
Sega_Jo 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]

正则或xmldocument
[/Quote]

大大要怎么取才好呢?需要排序到oracle的
Sega_Jo 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 sega_jo 的回复:]
XML code
&lt;?xml version='1.0' encoding='UTF-8'?&gt;
<XHRDBOSS>
<Response>
<RspCode>200</RspCode>
<RspDesc>操作成功</RspDesc>
</Response>
<Channel>
<Cha……
[/Quote]
要怎么取材好呢?要排序到oracle的。
Pany___ 2011-09-15
  • 打赏
  • 举报
回复
难点是怎么取才方便存入oracle。求思路。
ycproc 2011-09-15
  • 打赏
  • 举报
回复
用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)
{
//.......
}
}
}
Pany___ 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]

正则或xmldocument
[/Quote]
怎么写正则才比较好按照上面的那个方式存到oracle
Pany___ 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 sega_jo 的回复:]
XML code
&lt;?xml version='1.0' encoding='UTF-8'?&gt;
<XHRDBOSS>
<Response>
<RspCode>200</RspCode>
<RspDesc>操作成功</RspDesc>
</Response>
<Channel>
<Cha……
[/Quote]
这样写么?
Regex reg = new Regex(@"(?s)(?:<TopicId>(.*?)</TopicId>.*?<NewsTitle>(.*?)</NewsTitle>.*?<NewsContent>(.*?)</NewsContent>)*");

然后该怎么办...怎么按照那个方式存入oracle?新手求照顾。
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
正则或xmldocument
[/Quote]

正解!
bdmh 2011-09-15
  • 打赏
  • 举报
回复
正则或xmldocument

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧