C# HTML解析时获取列表元素
我有一段HTML,如下所示:C# HTML解析时获取列表元素,c#,html,html-parsing,html-agility-pack,html-parser,C#,Html,Html Parsing,Html Agility Pack,Html Parser,我有一段HTML,如下所示: <li class="myclass"> <ul class="myclass2"> <li><span>Name1</span><span>Value1</span></li><li><span>Name2</span><span>Value2</span>
<li class="myclass">
<ul class="myclass2">
<li><span>Name1</span><span>Value1</span></li><li><span>Name2</span><span>Value2</span></li><li><span>Name3</span><span>Value3</span></li>
</ul>
</li>
这给了我这一部分:
<li><span>Name1</span><span>Value1</span></li><li><span>Name2</span><span>Value2</span></li><li><span>Name3</span><span>Value3</span></li>
Name1Value1 Name2Value2 Name3Value3
但我不知道如何进一步,我需要名称和值,但我不知道如何获得它们。你能告诉我怎么做吗?谢谢。您应该为您的项目提供一个html id,然后在javascript中很容易获得该元素。我不知道您的框架,但在其他情况下这很容易,例如在jQuery中:
$(“#id”)
您应该为您的项目提供一个html id,然后在javascript中获取此元素应该很容易。我不知道您的框架,但在其他框架中,这非常简单,例如在jQuery中:$(“#id”)
您可以使用正则表达式从所有标记中获取值
public void ProcessSpans(string inputHTML)
{
string pattern = @"<span([^>]*)class=\""(\w+)\""([^>]*)>(.*)<\/span>";
RegexOptions regexOptions = RegexOptions.Multiline;
Regex regex = new Regex(pattern, regexOptions);
var matches = regex.Matches(inputHTML);
//Process the matches with your logic.
}
可以使用正则表达式从所有标记中获取值
public void ProcessSpans(string inputHTML)
{
string pattern = @"<span([^>]*)class=\""(\w+)\""([^>]*)>(.*)<\/span>";
RegexOptions regexOptions = RegexOptions.Multiline;
Regex regex = new Regex(pattern, regexOptions);
var matches = regex.Matches(inputHTML);
//Process the matches with your logic.
}
这些项目没有id,我无法为它们提供id。有没有方法在没有id的情况下执行此操作?您可以尝试getChild()。如果您在ul上使用此函数,它将为您提供一个数组。然后,第一项将是
…QuerySelector(“ul”)。getChild[0]…
这些项没有id,我无法为它们提供id。有没有办法在没有id的情况下执行此操作?您可以尝试getChild()。如果您在ul上使用此函数,它将为您提供一个数组。然后,第一项将是…QuerySelector(“ul”).getChild[0]…
var values = mydetails.DocumentNode.QuerySelector(".myclass").QuerySelector("ul").InnerHtml;
ProcessSpans(values);