2 Stimmen

Wie man die IDs des HTML-Elements eines HTML-Dokuments in C# mit dem HTML Agility Pack erhält?

Ich habe so etwas Ähnliches

Ich möchte das quest-id aller div, die der Klasse subclass1, subclass2 angehören, sowie das quest-id aller input- und textarea-Elemente haben. Wie kann ich das mit dem Html Agility Pack in C# machen?

und ich habe C#-Code wie folgt:

HtmlDocument document = new HtmlDocument();
document.LoadHtml(obj.NewPage.Content);

HtmlNode htmlRootElement = document.DocumentNode.SelectSingleNode("/html");
HtmlNode bodyElement = htmlRootElement.SelectSingleNode("body");

Ich weiß nicht, wie ich weiter vorgehen soll

0voto

Emran Hussain Punkte 10644

Dies ist der Codeausschnitt, den ich geschrieben und getestet habe.

 const string sampleHTML = @"

     ";

 HtmlAgilityPack.HtmlDocument myDoc = new HtmlAgilityPack.HtmlDocument();
 myDoc.LoadHtml(sampleHTML);
 HtmlNodeCollection foundNodes = myDoc.DocumentNode.SelectNodes("/div[contains(@class, 'subclass2')]");                                                                        
 MessageBox.Show(foundNodes[0].Attributes["quest-id"].Value);

Wenn ich den Ausschnitt ausführe, sehe ich den Wert '234' im Meldungsfenster.

0voto

har07 Punkte 85984

Der folgende XPath kann alle quest-id-Werte aus dem im Fragestellung geposteten Beispiel-HTML abrufen:

//div[contains(@class, 'subclass1') or contains(@class, 'subclass2')]
| //input[@quest-id] 
| //textarea[@quest-id]

Arbeitsbeispiel:

var html = @" 

 ";
var doc = new HtmlDocument();
doc.LoadHtml(html);

var nodes = 
    doc.DocumentNode
       .SelectNodes("//div[contains(@class, 'subclass1') or contains(@class, 'subclass2')]"
                        + " | //input[@quest-id] "
                        + " | //textarea[@quest-id]");
foreach (var node in nodes)
{
    Console.WriteLine(node.GetAttributeValue("quest-id", ""));
}

0voto

Tiam Punkte 27
 string id = div.GetAttributeValue("id", "").ToString();
 string name= div.GetAttributeValue("name", "").ToString();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X