<link rel="alternate" type="application/rss+xml" title="Flickr: Photos from Gen Kanai RSS feed" href="http://api.flickr.com/services/feeds/photos_public.gne?id=35237090101@N01&format=rss_200">
上面的字符串我要把href里面的地址截取出来 不想用正则表达式 望大家踊跃参与
上面的字符串我要把href里面的地址截取出来 不想用正则表达式 望大家踊跃参与
int pos = input.IndexOf("http");
string link = input.Substring(pos, input.length-pos);
link = link.Trim('\"',">");
{
int startIdx = str.IndexOf("href=");
int endIdx = str.IndexOf("\"",startIdx+"href=".Length);
return str.Substring(startIdx+"href=".Length,endIdx-startIdx+"href=".Length);
}
成功!!...
找到href,然后得到双引号之间的字符串。
修改一下lxhvc() 的代码:
public string GetHrefString(string str)
{
int startIdx = str.IndexOf("href=");
int endIdx = str.IndexOf("""",startIdx+"href=".Length);
return str.Substring(startIdx+"href=".Length,endIdx-startIdx+"href=".Length);
}
測試過!行
可以的
是要找出上面的地址
ref="http://api.flickr.com/services/feeds/photos_public.gne?id=35237090101@N01&format=rss_200结果多了ref="
提示:
if(xmlReader.NodeType==XmlNodeType.Element)
{
while(xmlReader.MoveToNextAttribute())
{
if (xmlReader.Name=="href"){ string s=xmlReader.Value;}
}
}s就是你想要的
這個正确吧!
XmlReader xmlReader = new XmlReader();
if (xmlReader.NodeType == XmlNodeType.Element)
{
while (xmlReader.MoveToNextAttribute())
{
if (xmlReader.Name == "href") { string s = xmlReader.Value; }
}
}
同意gezichong(鸽子虫)的方法!
测试过不对
ref="http://api.flickr.com/services/feeds/photos_public.gne?id=35237090101@N01&format=rss_200结果多了ref="
---------------
不好意思看错了
s.Remove(0, s.IndexOf("http")).Substring(0, s.Remove(0, s.IndexOf("http"))- 2)
把
XmlReader xmlReader = new XmlReader();
換成這個:
XmlTextReader xmlReader = new XmlTextReader(str);
你的s是什么类型的 我看你这个练编译都不会通过
算我没来过!
这个好用
Regex reg = new Regex("(?<=(href[\\s]*=[\\s]*\"))[\\s\\S]*?(?=(\"))",RegexOptions.IgnoreCase);
Console.WriteLine(reg.Match(s).Value);
if (xmlReader.NodeType == XmlNodeType.Element)
{
while (xmlReader.MoveToNextAttribute())
{
if (xmlReader.Name == "href") { string s = xmlReader.Value; }
}
}
这个为什么编译不能通过
把
XmlReader xmlReader = new XmlReader();
換成這個:
XmlTextReader xmlReader = new XmlTextReader(str);
using System.Collections;
using System.Text.RegularExpressions;
public class MyClass
{
public static void Main()
{
string s="<link rel=\"alternate\" type=\"application/rss+xml\" title=\"Flickr: Photos from Gen Kanai RSS feed\" href=\"http://api.flickr.com/services/feeds/photos_public.gne?id=35237090101@N01&format=rss_200\">";
System.Text.RegularExpressions.Regex reg = new Regex("(?<=(href[\\s]*=[\\s]*\"))[\\s\\S]*?(?=(\"))",RegexOptions.IgnoreCase);
Console.WriteLine(reg.Match(s).Value);
RL();
}
#region Helper methods private static void WL(object text, params object[] args)
{
Console.WriteLine(text.ToString(), args);
}
private static void RL()
{
Console.ReadLine();
}
private static void Break()
{
System.Diagnostics.Debugger.Break();
} #endregion
}
那這用就這吧
我需要的是遇到不同的link也能读出href里面的地址
<link href="http://blog.donews.com/laobai/rss.aspx" title="RSS" type="application/rss+xml" rel="alternate" >
<link rel="alternate" type="application/rss+xml" title="Flickr: Photos from Gen Kanai RSS feed" href="http://api.flickr.com/services/feeds/photos_public.gne?id=35237090101@N01&format=rss_200">
int d = a.IndexOf("\">");
int f = d - c;
string b = a.Substring(c,f);
MessageBox.Show(b);
这样好像可以..你试看看能否满足你的要求...
XmlNode node = doc.SelectSingleNode("link");
return node.Attribute["href"].value;
XmlReader xmlReader = new XmlReader();
if (xmlReader.NodeType == XmlNodeType.Element)
{
while (xmlReader.MoveToNextAttribute())
{
if (xmlReader.Name == "href") { string s = xmlReader.Value; }
}
}
这个为什么编译不能通过这里的xmlReader不是XmlReader类的实例,而是它的继承类的xmlTextReader的实例,,不好意思,,上面的写的错了,,,我没有定义,,,,sorry!!!应为:
XmlTextReader xmlReader=new XmlTextReader();
上面的字符串我要把href里面的地址截取出来 不想用正则表达式 望大家踊跃参与
----
/*
使用有限状态机方式解决,并防止出现"<空格link"问题,及大小写问题
*/
char strlink[]="link";
char strHref[]="href";
char strTemp[]="...........(你的语句)...................";
char strHref[64][256]; //最多存64条链接
GetHref(char* ptrTemp)
{
int nowState=0,i;
while(ptrTemp++!='\0')
{
if(ptrTemp=='<'&&nowState==0) //查到'<'开始
nowState=1;
if(ptrTemp!=0x20&&ptrTemp!=strLink[0]&&
ptrTemp!=(strLink[0]+'A'-'a')&&nowState==1) //非空格也非l[L]则不是link
nowState=0;
if(ptrTemp!=strLink[0]&&ptrTemp!=(strLink[0]+'A'-'a')&&nowState==1)
{
for(i=0;strLink[i]!='\0'&&ptrTemp!='\0';i++)
{
if((ptrTemp==strLink[i]||ptrTemp==strLink[i]+'A'-'a')&&nowState==i+1)
nowState++;
else
nowState=0;
ptrTemp++;
}
if(nowState!=0)
nowState=2;
}
if(ptrTemp!=strHref[0]&&ptrTemp!=(strHref[0]+'A'-'a')&&nowState=2) //找到href的h
{
for(i=0;strHref[i]!='\0'&&ptrTemp!='\0';i++)
{
if((ptrTemp==strLink[0][i]||ptrTemp==strLink[1][i])&&nowState==i+2)
nowState++;
else
nowState=2;
}
ptrTemp++;
if (nowState>2)
nowState=3;
}
if(ptrTemp!="\""&&nowState=3) //找引号
{
读入到href中...
}
}
}
引用中
char *ptrTemp;
ptrTemp=strTemp;
GetHref(ptrTemp)
先写一部分,明天再写,睡觉了
s="<link rel="alternate"type="application/rss+xml" title="Flickr: Photos from Gen Kanai RSS feed" href="http://api.flickr.com/services/feeds/photos_public.gne?id=35237090101@N01&format=rss_200">"slipt(s,"href=",2)
上面的字符串我要把href里面的地址截取出来 不想用正则表达式 望大家踊跃参与------------------------------------------------------------------------------------string strInput;
string strOutput;
string []strResults;
strResults = strInput.Split(" ");
for (int i = 0; i < strResults.Length; i++)
{
if (strResults[i].IndexOf("href") >= 0)
{
int nPos = strResults[i].IndexOf("\"");
strOutput = strResults[i].Substring(nPos);
nPos = strOutput.IndexOf("\"");
strOutput = strOutput.Substring(0, nPos);
break;
}
}