使用敏捷性html包

时间:2015-10-08 12:59:20

标签: html html-agility-pack

我尝试使用agility html包在<p>内获取所有<div>个标签。但我只能从div获得第一个

标签。

<div  id='bodayDiv'>
<p> hi </p>
<p> what is app </p>
<p> in the room </p>
</div>

我使用了这段代码

//div[@id='bodyDiv']/p/text()

或者

  //div[@id='bodyDiv']//p

但我只能先获得<p>

2 个答案:

答案 0 :(得分:0)

如果你想获得所有段落节点的文本,你可以试试这个:

DataTable dt;
    public void refreshdata()
    {
        string loadstring = @"server=localhost;database=librarys;userid=root;password=1234;";
        MySqlConnection conDataBase = new MySqlConnection(loadstring);
        MySqlCommand cmdDataBase = new MySqlCommand("CALL `proc_returnborrowed`();", conDataBase);

        try
        {
            MySqlDataAdapter sda = new MySqlDataAdapter();
            sda.SelectCommand = cmdDataBase;
            dt = new DataTable();
            sda.Fill(dt);
            BindingSource bs = new BindingSource();

            bs.DataSource = dt;
            dataGridView1.DataSource = bs;
            sda.Update(dt);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

我建议你阅读http://www.w3.org/TR/xpath/#location-paths

答案 1 :(得分:0)

解决此问题的方法是使用SelectNodes

     string PageFull = "";
 foreach (HtmlAgilityPack.HtmlNode node2 in doc.DocumentNode.SelectNodes("//div[@id='bodyDiv']/p/text()"))
  PageFull = PageFull + "<p>" + node2.InnerHtml + "</p>"; ;