如何从字符串转义引号?
本文关键字:转义 字符串 | 更新日期: 2023-09-27 18:16:08
我有这个例子:
<a href="/Forums2008/forumPage.aspx?forumId=393" title="מזג האוויר">מזג האוויר</a>
我首先要解析的是forumId=393然后是393和链接最后是名字在这里是hebrew所以这里有点乱名字应该是:
מזגהאוויר
我可以使用indexof和substring或html lagilitypack,我更喜欢html lagilitypack来获得所有三个值,也许正则表达式也是一个好方法。
最后我应该得到这四个字符串:
forumId = 393
393年מזגהאוויר
/Forums2008/forumPage.aspx吗?forumId = 393
我尝试到目前为止,它甚至不接近我的目标是一次与htmllagilitypack和其他下载html保存为文件,然后解析它我认为使用索引和子字符串,但不确定如何:
HtmlAgilityPack.HtmlDocument doc =
Qhw.Load("http://www.tapuz.co.il/forums/forumslistnew.asp");
parseIds(doc);
WebClient webclient = new WebClient();
webclient.DownloadFile("http://www.tapuz.co.il/forums/forumslistnew.asp",
@"c:'testhtml'mainforums.html");
webclient.Dispose();
string[] lines = File.ReadAllLines(@"c:'testhtml'mainforums.html");
foreach(string line in lines)
{
if (line.Contains("href") && line.Contains("forumId=") && !wholeids.Contains(line))
{
string tg1 = "href="";
wholeids.Add(line);
}
}
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
idsnumbers.Add(link.InnerText);
}
idsnumbers是List全局变量
我将使用HtmlAgilityPack
, Uri.TryCreate
和ParseQueryString
:
string html = @"<a href=""/Forums2008/forumPage.aspx?forumId=393"" title=""מזג האוויר"">מזג האוויר</a>";
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(html);
var anchor = htmlDoc.DocumentNode.Descendants("a").FirstOrDefault();
if(anchor != null)
{
string name = anchor.InnerText;
string href = anchor.Attributes["href"].Value;
Uri uri;
if(Uri.TryCreate(href, UriKind.RelativeOrAbsolute, out uri))
{
var queryString = href.Substring(href.IndexOf('?')).Split('#')[0]; // because of relative uri
var queryKeyValues = System.Web.HttpUtility.ParseQueryString(queryString);
string forumId = queryKeyValues["forumId"];
}
}
你也可以创建一个假的绝对uri来避免字符串方法:
if(Uri.TryCreate(href, UriKind.RelativeOrAbsolute, out uri))
{
if(!uri.IsAbsoluteUri)
uri = new Uri(new Uri("http://www.google.com/"), uri);
var queryKeyValues = System.Web.HttpUtility.ParseQueryString(uri.Query);
string forumId = queryKeyValues["forumId"];
}