日期:2014-05-18  浏览次数:20470 次

请教一个读取HTML字符串元素的方法
string html是一个字符串,内容为:
XML code

  <p>XXXX</p><p>姓名:<input id=\"姓名\" value=\"\" type=\"text\" etype=\"TextBox\" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 部门:<select style=\"width: 120px;\" id=\"部门\" etype=\"DeptCode\"> <option></option> </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 职务:<select style=\"width: 120px;\" id=\"职务\" etype=\"PostCode\"> <option></option> </select></p><p>数量:<input id=\"数量\" value=\"0.00\" type=\"text\" etype=\"NumberUpDown\" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单价:<input id=\"单价\" value=\"0.00\" type=\"text\" etype=\"NumberUpDown\" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 金额:<input id=\"金额\" value=\"0.00\" type=\"text\" etype=\"NumberUpDown\" /></p>



我用读取XML的方法,读取它
XElement doc = XElement.Parse(html);
报错: 有多个根元素

还有其它的什么比较好的方法可以读取HTML字符串中的元素吗?

------解决方案--------------------
HtmlAgilityPack

http://htmlagilitypack.codeplex.com/
------解决方案--------------------
其实很简单,你给出的字符串为s:
string s="...";
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.LoadXml("<xml>"+s+"</xml>");

也就是你手动添上一对标记,使其根元素唯一,即可对其操作了。
------解决方案--------------------
更为复杂的html,可以用HtmlAgilityPack这个第三方类库,http://zhoufoxcn.blog.51cto.com/792419/595344
------解决方案--------------------
探讨

HtmlAgilityPack

http://htmlagilitypack.codeplex.com/