请在座的各位GGMM,JJDD帮个忙!!!!!取出记录中的特定值<IMG >,,怎么做啊,,详情请进
我想从下面这个记录值中取出所有<IMG >中的文件名象(/w/dgw/eWebEditor/UploadFile/200683172239585.jpg),然后用“|”号分割后组合在一起,一个记录中可能有很多图片,怎么做啊??
......<DIV><IMG src="/w/dgw/eWebEditor/UploadFile/200683172239585.jpg" border=0><FONT face=宋体 size=2> 公元五世纪,北魏地理学家郦道元发现阴山岩画,并在他的名著《水经注》中留下了<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




