仅提取带有文本(或值)的元素

时间:2010-03-28 08:56:55

标签: c# html xml linq linq-to-xml

干得好。 我正在尝试将html转换为xml 意思是用文本提取所有元素 使用此代码不起作用,也许有人有答案?

System.Xml.Linq.XElement query1 = new System.Xml.Linq.XElement("RawHTMLData",
           from q in hDoc.Descendants("TABLE")
           where q.HasElements 
           select new System.Xml.Linq.XElement("TABLE" + (++i).ToString(),
           from j in q.Elements("TR")
           where j.HasElements && j.Descendants("div") != null
           select new System.Xml.Linq.XElement("Row",
           from hh in j.Descendants("div")
           where tt => j.Descendants("div").Contains(hh.Value) 
           select(TT(hh)))));

3 个答案:

答案 0 :(得分:0)

你不能使用Linq to Xml来解析HTML因为html可能无效为xml。

答案 1 :(得分:0)

不确定这是否适合您,但您可能会考虑使用第三方工具(例如HTML Tidy)将HTML转换为XHTML。然后你可以将你的HTML视为XML。 Here是指向讨论该帖子的帖子的链接。

答案 2 :(得分:0)

我认为你应该使用HTML Agility Pack,它对我帮助很大! :)

旧项目页面:http://htmlagilitypack.codeplex.com/