CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

请在座的各位GGMM,JJDD帮个忙!!!!!取出记录中的特定值<IMG >,,怎么做啊,,详情请进

楼主wxr9999(闪闪)2006-08-03 17:51:03 在 .NET技术 / ASP.NET 提问

我想从下面这个记录值中取出所有<IMG           >中的文件名象(/w/dgw/eWebEditor/UploadFile/200683172239585.jpg),然后用“|”号分割后组合在一起,一个记录中可能有很多图片,怎么做啊??  
   
  ......<DIV><IMG   src="/w/dgw/eWebEditor/UploadFile/200683172239585.jpg"   border=0><FONT   face=宋体   size=2>&nbsp;&nbsp;   公元五世纪,北魏地理学家郦道元发现阴山岩画,并在他的名著《水经注》中留下了<P><IMG   BORDER-BOTTOM-COLOR:   #3352cc;   BORDER-TOP-COLOR:   #3352cc;   BORDER-RIGHT-COLOR:   #3352cc"   height=5   src="/w/dgw/eWebEditor/UploadFile/200683172328261.gif"   width=5   align=right   vspace=5   border=5></P>「山石之上,自然有文,尽若虎马之状,粲然成着,类似图焉」等记载。郦道元所记载这些刻在石头上的图案,就是今天所说的「岩画」。据目前所看到的史书记载,郦道元是最先发现阴山岩画的人。</FONT></DIV>.......  
   
  问题点数:30、回复次数:15Top

1 楼Zine_Alone(☆小飞☆)回复于 2006-08-03 17:53:25 得分 0

记录值?  
  你这段东西保存在哪?准备怎么去获取?   B/S   ?   C/S?  
   
    做法应该就是去匹配字符串.Top

2 楼cctaiyang(带头大哥_OPPA)回复于 2006-08-03 17:55:19 得分 0

然后用“|”号分割后组合在一起,一个记录中可能有很多图片  
  没看懂是什么意思Top

3 楼wxr9999(闪闪)回复于 2006-08-03 18:04:07 得分 0

记录值就是一个数据库记录,是content字段中记录的。  
   
  然后用“|”号分割后组合在一起,一个记录中可能有很多图片,就是:  
   
  最后把取出的所有图片名称用“|”号分开排列成如这样:  
  /w/dgw/eWebEditor/UploadFile/200683172239585.jpg|/w/dgw/eWebEditor/UploadFile/200683172239586.jpg|...  
   
  一个记录中当然可能有含有1张图片也可能有2、3张图片等等多张。Top

4 楼wxr9999(闪闪)回复于 2006-08-03 18:05:15 得分 0

怎么匹配字符串啊,,小弟菜鸟。。。~~~Top

5 楼wxr9999(闪闪)回复于 2006-08-03 18:11:43 得分 0

帮帮忙啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Top

6 楼beijin2008(新奥运)回复于 2006-08-03 21:16:55 得分 0

这个我也想知道怎么做。。帮顶!!Top

7 楼wxr9999(闪闪)回复于 2006-08-04 09:07:46 得分 0

是不是无法做到啊~~~~~~~~~~~~~~~~~~~~~~Top

8 楼Zine_Alone(☆小飞☆)回复于 2006-08-04 09:33:30 得分 15

最好的办法是用正则表达式去匹配~  
   
      效率底点就用下面这个递归了.  
      //strValue:包含html的字符串  
      //strStart:要查找的标签开始符号,类似"<img   src='"  
    //strEnd:要查找的标签结束符号,类似">"  
      public   static   string   GetHtmlValue(string   strValue,string   strStart,string   strEnd)  
  {  
  int   nStart=0;  
  int   nEnd=0;  
  string   strReturn=string.Empty;  
  while(strValue!=string.Empty)  
  {  
  nStart=strValue.IndexOf(strStart,0);  
  if(nStart>0)  
  {  
  strValue=strValue.Remove(0,nStart);  
  nEnd=strValue.IndexOf(strEnd,0);  
  }  
  if(nStart>0&&nEnd>0)  
  {  
  strReturn+="|"+strValue.Substring(0,nEnd);  
  strValue=strValue.Remove(0,nEnd);  
  GetHtmlValue(strValue,strStart,strEnd);  
  }  
  else  
  {  
  strValue=string.Empty;  
  }  
  }  
  return   strReturn;  
   
  }Top

9 楼wxr9999(闪闪)回复于 2006-08-04 10:39:34 得分 0

正则表达式怎么做啊,有没有高手。。。Top

10 楼wxr9999(闪闪)回复于 2006-08-04 12:08:54 得分 0

大家再帮帮忙吧。。。Top

11 楼sunjay117(悟空)回复于 2006-08-04 14:45:06 得分 0

string   imgs="取出的值";  
  Regex   r   =   new   Regex("[|]");    
  string[]   img=r.Split(imgs);Top

12 楼cctaiyang(带头大哥_OPPA)回复于 2006-08-04 15:05:26 得分 15

不好意思刚看到你的消息,我写了个例子  
  另外分太少了,呵呵  
   
                  private   void   button2_Click(object   sender,   EventArgs   e)  
                  {  
   
                          String   str1   =   "1|2|3|4|5|6|7|8|9";  
                          String   str2   =   "|";  
                          string[]   output   =   null;  
   
                          output   =   mySplit(str1,   str2);  
                          for   (int   i   =   0;   i   <   output.Length;   i++)  
                          {  
                                  MessageBox.Show(output[i]);  
                          }  
   
                  }  
   
                  public   static   string[]   mySplit(string   strinput,   string   sp)  
                  {  
                          string   tmp   =   "";  
                          int   strlen   =   0,   splen   =   0;  
                          int   found   =   0;  
                          string[]   rt   =   null;  
   
                          try  
                          {  
                                  if   (strinput   ==   null   ||   sp   ==   null   ||   strinput.Length   ==   0   ||   sp.Length   ==   0)   return   null;  
   
                                  //初始化一个数组列表(当做动态数组)  
                                  List<string>   tmp3   =   new   List<string>();  
   
                                  strlen   =   strinput.Length;  
                                  splen   =   sp.Length;  
                                  for   (int   i   =   0;   i   <   strlen;   i++)  
                                  {  
                                          //查找分隔符  
                                          found   =   strinput.IndexOf(sp,   i);  
                                          if   (found   >=   0)  
                                          {  
                                                  tmp   =   "";  
                                                  //取分隔符前的字符串  
                                                  tmp   =   strinput.Substring(i,   found   -   i);  
                                                  //添加到数组列表  
                                                  tmp3.Add(tmp);  
                                                  i   =   found   +   splen   -   1;  
                                          }  
                                          else  
                                          {  
                                                  string   tmp2   =   "";  
                                                  //取最后的字符串  
                                                  tmp2   =   strinput.Substring(i);  
                                                  if   (tmp2   !=   "")  
                                                          tmp3.Add(tmp2);  
                                                  break;  
                                          }  
                                  }  
   
                                  //将动态数组的维数设置成实际存在的元素个数,因为数组列表是以16的倍数递增维数的  
                                  tmp3.TrimExcess();  
                                  //转换数组列表为字符串数组,并返回。  
                                  rt   =   (string[])tmp3.ToArray();  
                                  tmp3.Clear();  
                          }  
                          catch   (Exception   e)  
                          {  
                                  throw   e;  
                          }  
   
                          return   rt;  
                  }  
  Top

13 楼cctaiyang(带头大哥_OPPA)回复于 2006-08-04 15:07:26 得分 0

这是我在vs2005下写的,里面的泛型是C#2.0的语法,在vs2003上可能会编译出错Top

14 楼amingo(Atlas 新技术讨论群:6455130(群主))回复于 2006-08-04 15:47:27 得分 0

送分  
   
  http://community.csdn.net/Expert/topic/4927/4927379.xml?temp=.6112329Top

15 楼flashlove2008(疯KX)回复于 2006-08-04 16:41:28 得分 0

关注..Top

相关问题

关键词

得分解答快速导航

  • 帖主:wxr9999
  • Zine_Alone
  • cctaiyang

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo