web-dev-qa-db-fra.com

HtmlAgilityPack - Comment obtenir le tag par Id?

J'ai une tâche à accomplir. J'ai besoin de récupérer le tag ou href d'un id spécifique (le id est basé sur l'entrée utilisateur). Exemple J'ai un html comme celui-ci

<manifest>

<item href="Text/Cover.xhtml" id="Cov" media-type="application/xhtml+xml" />
    <item href="Text/Back.xhtml" id="Back" media-type="application/xhtml+xml" />
  </manifest>

J'ai déjà ce code. Aidez-moi, s'il vous plaît. Merci

HtmlAgilityPack.HtmlDocument document2 = new 

HtmlAgilityPack.HtmlDocument();
document2.Load(@"C:\try.html");
HtmlNode[] nodes = document2.DocumentNode.SelectNodes("//manifest").ToArray();

foreach (HtmlNode item in nodes)
{
    Console.WriteLine(item.InnerHtml);
}
21
knowme

Si je comprends bien alors:

HtmlAgilityPack.HtmlDocument document2 = new HtmlAgilityPack.HtmlDocument();
document2.Load(@"C:\try.html");

string tag = document2.GetElementbyId("yourid").Name;
string href = document2.GetElementbyId("yourid").GetAttributeValue("href", "");
35
nrkz

Vous pouvez utiliser le XPath suivant pour rechercher l'élément item par sa valeur d'attribut id:

var id = "Back";
var query = $"//manifest/item[@id='{id}']";
HtmlNode node = document2.DocumentNode.SelectSingleNode(query);
string href = node.GetAttributeValue("href", "");
5
har07