首页 > 解决方案 > 从 HTML 中提取动态并填充 XML

问题描述

我正在使用 C#、HTMLAGILITYPACK、HTML 和 XML 编写应用程序。该应用程序从我的 HTML 页面中获取所有内容,并使用该信息创建一个 XML 存档。示例:这是我的字段:https ://prnt.sc/p6s958当我运行我的应用程序时,我得到了这个:https ://prnt.sc/p6saii

有我的情况:

我有一个由 STATUS 调用的字段集,并且运行了所有发生的事件,请看:https ://prnt.sc/p6sc6y

在那里,当发生某些事情时,HTML 会再收到一个,也许在那之后,又会收到一个……再一个……

我已经使用 HTMLAGILITYPACK 通过 xPtah 获取字段,所以这是我的事件字段集的结构,我找到了一种方法来获取内容并使用foreach一个一个地显示所有内容:


foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//*[@id='NFe']/fieldset[5]/table/tr"))
{
     HtmlNodeCollection cells = row.SelectNodes("td");

     for (int i = 0; i < cells.Count; ++i)
     {
             if (i == 0)
                 {
                     MessageBox.Show(cells[i].InnerText); }

             else
                  {
                      MessageBox.Show(cells[i].InnerText);
                  }
      }
}

如何用我的 HTML 表的信息填充我的 XML?


当我想提取单个字段内容时,有一个示例:

var xp_nfe_emitente = "//*[@id='NFe']/fieldset[2]"; // getting my user_info fieldset

var xp_nfe_emitente_name = doc.DocumentNode.SelectSingleNode(xp_nfe_emitente + "//table/tr/td[1]/span").InnerText;

nota.NFe.infNFe.emit.name = xp_nfe_emitente_name;

/* Here, after extracted my info, I transform it on my XML (using a XMLschema)*/

XmlSerializer ser = new XmlSerializer(typeof(nfeProc));
FileStream archive= new FileStream("C:\\test\\myxml.xml", FileMode.CreateNew);
ser.Serialize(archive, note);

如果我不清楚,请告诉我,我可以提供更多信息和示例(代码)

标签: c#htmlxmlhtml-tablehtml-agility-pack

解决方案


推荐阅读