Je veux récupérer la largeur et la hauteur d'un élément HTML avec HtmlAgilityPack

asp.net c# html-agility-pack

Question

Comment récupérer la largeur et la hauteur de l'élément img avec HtmlAgilityPack Je le fais comme ça.

    HtmlAgilityPack.HtmlAttribute width = link.Attributes["width"];
    HtmlAgilityPack.HtmlAttribute height = link.Attributes["height"];

mais la largeur et la hauteur sont dans la plupart des cas nulles. Comment obtenir la hauteur et la largeur css?

Réponse populaire

Basead dans cette page: page

public sealed class UtilParserHTML
{

    //Private Fields
    private Uri Uri;
    private Stream StreamPage;
    private HttpWebRequest HttpRequest;
    private HttpWebResponse HttpResponse;

    //Public Fields
    public HtmlDocument HtmlDocument { private set; get; }

    public UtilParserHTML()
    {
        if (this.HtmlDocument == null)
            HtmlDocument = new HtmlDocument();
    }

    public void LoadHTMLPage(string UrlPage)
    {
        if (string.IsNullOrEmpty(UrlPage))
            throw new ArgumentNullException("");

        CookieContainer cookieContainer = new CookieContainer();

        this.Uri = new Uri(UrlPage);
        this.HttpRequest = (HttpWebRequest)WebRequest.Create(UrlPage);
        this.HttpRequest.Method = WebRequestMethods.Http.Get;       
        this.HttpRequest.CookieContainer = cookieContainer;
        this.HttpResponse = (HttpWebResponse)this.HttpRequest.GetResponse();
        this.StreamPage = this.HttpResponse.GetResponseStream();
        this.HtmlDocument.Load(StreamPage);
    }

    public void LoadHTMLPage(FileStream StreamPage)
    {
        if (StreamPage == null)
            throw new ArgumentNullException("");

        HtmlDocument.Load(StreamPage);
    }

    public HtmlNodeCollection GetNodesByExpression(string XPathExpression)
    {
        if (string.IsNullOrEmpty(XPathExpression))
            throw new ArgumentNullException("");

        return this.HtmlDocument.DocumentNode.SelectNodes(XPathExpression);
    }

Utilisez XPath pour naviguer en HTML. Dans ce cas, j'ai utilisé cette expression Xpath: // div [@ class = 'arrowRibbon'] // img

Regardez: ...

public sealed class UtilParserHTML
{

    //Private Fields
    private Uri Uri;
    private Stream StreamPage;
    private HttpWebRequest HttpRequest;
    private HttpWebResponse HttpResponse;

    //Public Fields
    public HtmlDocument HtmlDocument { private set; get; }

    public UtilParserHTML()
    {
        if (this.HtmlDocument == null)
            HtmlDocument = new HtmlDocument();
    }

    public void LoadHTMLPage(string UrlPage)
    {
        if (string.IsNullOrEmpty(UrlPage))
            throw new ArgumentNullException("");

        CookieContainer cookieContainer = new CookieContainer();

        this.Uri = new Uri(UrlPage);
        this.HttpRequest = (HttpWebRequest)WebRequest.Create(UrlPage);
        this.HttpRequest.Method = WebRequestMethods.Http.Get;       
        this.HttpRequest.CookieContainer = cookieContainer;
        this.HttpResponse = (HttpWebResponse)this.HttpRequest.GetResponse();
        this.StreamPage = this.HttpResponse.GetResponseStream();
        this.HtmlDocument.Load(StreamPage);
    }

    public void LoadHTMLPage(FileStream StreamPage)
    {
        if (StreamPage == null)
            throw new ArgumentNullException("");

        HtmlDocument.Load(StreamPage);
    }

    public HtmlNodeCollection GetNodesByExpression(string XPathExpression)
    {
        if (string.IsNullOrEmpty(XPathExpression))
            throw new ArgumentNullException("");

        return this.HtmlDocument.DocumentNode.SelectNodes(XPathExpression);
    }

...

MODIFIER

Regardez cet exemple complet avec largeur et hauteur:

public sealed class UtilParserHTML
{

    //Private Fields
    private Uri Uri;
    private Stream StreamPage;
    private HttpWebRequest HttpRequest;
    private HttpWebResponse HttpResponse;

    //Public Fields
    public HtmlDocument HtmlDocument { private set; get; }

    public UtilParserHTML()
    {
        if (this.HtmlDocument == null)
            HtmlDocument = new HtmlDocument();
    }

    public void LoadHTMLPage(string UrlPage)
    {
        if (string.IsNullOrEmpty(UrlPage))
            throw new ArgumentNullException("");

        CookieContainer cookieContainer = new CookieContainer();

        this.Uri = new Uri(UrlPage);
        this.HttpRequest = (HttpWebRequest)WebRequest.Create(UrlPage);
        this.HttpRequest.Method = WebRequestMethods.Http.Get;       
        this.HttpRequest.CookieContainer = cookieContainer;
        this.HttpResponse = (HttpWebResponse)this.HttpRequest.GetResponse();
        this.StreamPage = this.HttpResponse.GetResponseStream();
        this.HtmlDocument.Load(StreamPage);
    }

    public void LoadHTMLPage(FileStream StreamPage)
    {
        if (StreamPage == null)
            throw new ArgumentNullException("");

        HtmlDocument.Load(StreamPage);
    }

    public HtmlNodeCollection GetNodesByExpression(string XPathExpression)
    {
        if (string.IsNullOrEmpty(XPathExpression))
            throw new ArgumentNullException("");

        return this.HtmlDocument.DocumentNode.SelectNodes(XPathExpression);
    }

J'espère que cette aide.




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