Utilisez HtmlAgilityPack pour analyser une variable HTML, pas un document HTML?

c# html-agility-pack

Question

J'ai une variable dans mon programme qui contient des données HTML sous forme de chaîne. La variable, htmlText , contient quelque chose comme:

<ul><li><u>Mode selector </u></li><li><u>LAND ALT</u></li>

J'aimerais parcourir ce code HTML à l'aide de HtmlAgilityPack, mais chaque exemple que je vois essaie de charger le code HTML en tant que document. J'ai déjà le code HTML que je veux analyser dans la variable htmlText . Quelqu'un peut-il me montrer comment analyser cela, sans le charger en tant que document?

L'exemple que je regarde maintenant ressemble à ceci:

<ul><li><u>Mode selector </u></li><li><u>LAND ALT</u></li>

Je veux convertir ceci pour utiliser mon htmlText et trouver tous les éléments underline intérieur. Je ne veux tout simplement pas charger ceci en tant que document car j'ai déjà le code HTML que je veux analyser stocké dans une variable.

Réponse acceptée

Vous pouvez utiliser la LoadHtml méthode de HtmlDocument classe


Réponse populaire

Document est simplement un nom, ce n'est pas vraiment un document (ou ne doit pas l'être).

var doc = New HtmlAgilityPack.HtmlDocument;
string myHTML = "<ul><li><u>Mode selector </u></li><li><u>LAND ALT</u></li>";
doc.LoadHtml(myHTML);
foreach (var node in doc.DocumentNode.SelectNodes("//a[@href]")) {
    Console.WriteLine(node.InnerHtml);

}

J'ai utilisé exactement la même chose pour analyser des fragments HTML dans des variables.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi