Comment utiliser HtmlAgilityPack pour obtenir une valeur de table

asp.net html-agility-pack html-helper html-parsing

Question

http://www.dsebd.org/latest_PE_all2_08.php

je travaille sur asp.net C # web.Above url contient des informations, j’ai besoin de les enregistrer dans ma base de données et de sauvegarder également à l’emplacement spécifié au format XML. comment récupérer la valeur de cette table html.

http://www.dsebd.org/latest_PE_all2_08.php

J'ai besoin d'aide pour obtenir des informations de table à partir de ce document .Comment enregistrer cette valeur de table.Afficher une syntaxe

Réponse populaire

public partial class WebForm3 : System.Web.UI.Page
    {
        private byte[] aRequestHTML;        
        private string myString = null;     
        protected System.Web.UI.WebControls.Label Label1;     
        private ArrayList a = new ArrayList(); 


        protected void Page_Load(object sender, EventArgs e)
        {
            WebClient objWebClient = new WebClient();

            aRequestHTML = objWebClient.DownloadData("http://www.dsebd.org/latest_PE_all2_08.php");
            // creates UTf8 encoding object
            UTF8Encoding utf8 = new UTF8Encoding();
            // gets the UTF8 encoding of all the html we got in aRequestHTML
            myString = utf8.GetString(aRequestHTML);

            string html = @"
        <html><head></head>
        <body><div>
            <table border=1>
                <tr><td>sno</td><td>sname</td></tr>
                <tr><td>111</td><td>abcde</td></tr>
                <tr><td>213</td><td>ejkll</td></tr>
            </table>
            <table border=1>
                <tr><td>adress</td><td>phoneno</td><td>note</td></tr>
                <tr><td>asdlkj</td><td>121510</td><td>none</td></tr>
                <tr><td>asdlkj</td><td>214545</td><td>none</td></tr>
            </table>
        </div></body>
        </html>";


            HtmlDocument htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(myString);


            DataTable addressAndPhones;
            foreach (var table in ParseAllTables(htmlDoc))
            {
                if (table.Columns.Contains("Trading Code") && table.Columns.Contains("Close Price"))
                {
                    // You found the address and phone number table
                    addressAndPhones = table;
                }
            }


        }

        private static DataTable[] ParseAllTables(HtmlDocument doc)
        {
            var result = new List<DataTable>();
            foreach (var table in doc.DocumentNode.Descendants("table"))
            {
                result.Add(ParseTable(table));
            }
            return result.ToArray();
        }

        private static DataTable ParseTable(HtmlNode table)
        {
            var result = new DataTable();

            var rows = table.Descendants("tr");

            var header = rows.Take(1).First();
            foreach (var column in header.Descendants("td"))
            {
                result.Columns.Add(new DataColumn(column.InnerText, typeof(string)));
            }

            foreach (var row in rows.Skip(1))
            {
                var data = new List<string>();
                foreach (var column in row.Descendants("td"))
                {
                    data.Add(column.InnerText);
                }
                result.Rows.Add(data.ToArray());
            }
            return result;
        }

    }

De cette façon, vous pouvez facilement créer un DataTable, puis sauvegarder sa base de données.




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