C# 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>

我有一段HTML,如下所示:

<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);