Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#在HTML文件中搜索,其中存在许多类似的标记_C#_Httprequest_Html Agility Pack - Fatal编程技术网

使用C#在HTML文件中搜索,其中存在许多类似的标记

使用C#在HTML文件中搜索,其中存在许多类似的标记,c#,httprequest,html-agility-pack,C#,Httprequest,Html Agility Pack,想象一下HTML文件的以下部分: <div class='span1 league'> <div class='league-gold-1 leagues size-64'></div> </div> <div class='span4 stats'> <div class='points'> <span class="gold">491</span>

想象一下HTML文件的以下部分:

<div class='span1 league'>
    <div class='league-gold-1 leagues size-64'></div>
</div>
<div class='span4 stats'>
    <div class='points'>
        <span class="gold">491</span>
        points
        (<span class="gold">391</span> away for region #1)
    </div>
    <div class='games'>
        Won <span class="text-success">37</span>,
        lost <span class="text-error">51</span>,
        ratio <span>42.05</span>%
    </div>
    <div class='race'>
        Favorite Race:
        <div class='race-terran races size-16'></div>
        <span>Terran</span>
    </div>
</div>

491
要点
(1区391人)
赢得37分,
失去51个,
比率42.05%
最喜爱的比赛:
人族
假设我需要得到赢和输的游戏数,在这种情况下是37和51。还包括点(在本例中为491)。我一直在尝试html敏捷包,但到目前为止没有成功。如果你现在想办法解决这个问题,请告诉我

使用

您还可以使用Linq而不是XPath

var won = doc.DocumentNode.Descendants("span")
          .First(s=>s.Attributes.Any(a=>a.Value=="text-success"))
          .InnerText;

作为一种解决方法,您可以尝试使用正则表达式

 Match m = Regex.Match(htmlstring, "<span class=\"text-success\">([0-9]+?)</span>.*?<span class=\"text-error\">([0-9]+?)</span>", RegexOptions.Singleline);
 string won = m.Result("$1");
 string loss = m.Result("$2");
Match m=Regex.Match(htmlstring,([0-9]+?).*([0-9]+?)”,RegexOptions.Singleline);
字符串元=m.Result($1);
字符串丢失=m.Result($2”);
 Match m = Regex.Match(htmlstring, "<span class=\"text-success\">([0-9]+?)</span>.*?<span class=\"text-error\">([0-9]+?)</span>", RegexOptions.Singleline);
 string won = m.Result("$1");
 string loss = m.Result("$2");