gpt4 book ai didi

c# - 如何转义字符串中的引号?

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:17 24 4
gpt4 key购买 nike

我有这个例子:

<a href="/Forums2008/forumPage.aspx?forumId=393" title="מזג האוויר">מזג האוויר</a>

我要解析的首先是 forumId=393,然后只有 393 和链接,最后是希伯来语的名字,所以这里有点乱,名字应该是:

海贼王

我可以使用 indexof 和 substring 或 htmlagilitypack 我更喜欢 htmlagilitypack 来获取所有三个值也许正则表达式也是一个好方法。

最后我应该得到这四个字符串:

  1. forumId=393

  2. 393

  3. 着陆点

  4. /Forums2008/forumPage.aspx?forumId=393

到目前为止我尝试过的,它甚至没有接近我的目标,一次是使用 htmlagilitypack,另一个是下载 html 将其保存为文件然后解析它我想使用 indexof 和 substring 但不确定如何:

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 全局变量。

最佳答案

我会使用 HtmlAgilityPackUri.TryCreateParseQueryString :

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"];
}

关于c# - 如何转义字符串中的引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com