Voglio recuperare la larghezza e l'altezza dell'elemento html con HtmlAgilityPack

asp.net c# html-agility-pack

Domanda

Come recuperare la larghezza e l'altezza dell'elemento img con HtmlAgilityPack Lo faccio in questo modo ..

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

ma la larghezza e l'altezza sono nella maggior parte dei casi nulle. Come ottenere l'altezza e la larghezza del css?

Risposta popolare

Vai in questa pagina: pagina

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

Usa XPath per navigare in html. In questo caso ho usato questa espressione Xpath: // div [@ class = 'arrowRibbon'] // img

Guarda: ...

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

...

MODIFICARE

Guarda questo esempio completo con larghezza e altezza:

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

Spero che questo aiuto.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché