在HtmlAgilityPack中常用到的类有HtmlDocument、HtmlNodeCollection、
HtmlNode和HtmlWeb等。
其流程一般是先获取HTML,这个可以通过HtmlDocument的Load()或LoadHtml()来加载静态内容,或者也可以HtmlWeb的Get()或Load()方法来加载网络上的URL对应的HTML。
得到了HtmlDocument的实例之后,就可以用HtmlDocument的DocumentNode属性,这是整个HTML文档的根节点,它本身也是一个HtmlNode,然后就可以利用HtmlNode的SelectNodes()方法返回多个HtmlNode的集合对象HtmlNodeCollection,也可以利用HtmlNode的SelectSingleNode()方法返回单个HtmlNode。
HtmlAgilityPack确实是一个功能强大、体积小的开源HTML解析类库,在本篇仅仅是介绍了其中几个类的用法,但光这些就足以供周公快速实现了许久没有实现的功能,如果让周公用正则表达式来实现类似的功能,时间肯定要比用这个长得多。
if(window.ActiveXObject){xmlDoc = new ActiveXObject('Microsoft.XMLDOM')xmlDoc.async = false
xmlDoc.load(xmlFile)}else if (document.implementation &&document.implementation.createDocument){xmlDoc = document.implementation.createDocument('', '', null)xmlDoc.async = false
xmlDoc.load(xmlFile)}else{return null}return xmlDoc}function startload (){var option,optiontext
if(xmlDoc == null){alert('您的浏览器不支持xml文件读取!')}else{var DeptXML = xmlDoc.getElementsByTagName("department")
//alert(DeptXML.length)
for (var i = 0 i <DeptXML.length i ++ ){option = document.createElement('option')
option.setAttribute("value",DeptXML[i].getAttribute('name'))
optiontext = document.createTextNode(DeptXML[i].getAttribute('name'))
option.appendChild(optiontext)
//option.innerHTML = DeptXML[i].getAttribute('name')
document.getElementById("cdepname").appendChild(option)}}}function clearList(){var username = document.getElementById("username")
while (username.childNodes.length >0){username.removeChild(username.childNodes[0])}}function refreshList (){clearList()
var option,optiontext
if(xmlDoc == null){alert('您的浏览器不支持xml文件读取!')}else{var selectDep = document.form1.cdepname.options[document.form1.cdepname.selectedIndex].text
/*var selectDep =document.getElementById("cdepname").options[document.getElementById("cdepname").options.selectedIndex].value*/
//alert(selectDep)
var DeptXML = xmlDoc.getElementsByTagName("department")
for (var i = 0 i <DeptXML.length i ++ ){if (DeptXML[i].getAttribute("name") == selectDep){var DeptSel = DeptXML[i]break}}for (i=0 i <DeptSel.childNodes.lengthi++){chen = new Option(DeptSel.childNodes[i].getAttribute("name"),DeptSel.childNodes[i].getAttribute("name"))
document.form1.username.options.add(chen)}}}function CheckUser (){//alert('sdfsadf')
if(xmlDoc == null){alert('您的浏览器不支持xml文件读取!')}else{var selectDep = document.form1.cdepname.options[document.form1.cdepname.selectedIndex].text
var DeptXML = xmlDoc.getElementsByTagName("department")
for (var i = 0 i <DeptXML.length i ++ ){if (DeptXML[i].getAttribute("name") == selectDep){var DeptSel = DeptXML[i]break}}var selectPer = document.form1.username.options[document.form1.username.selectedIndex].text
for (i=0 i <DeptSel.childNodes.lengthi++){if (DeptSel.childNodes[i].getAttribute("name") == selectPer){if (DeptSel.childNodes[i].getAttribute("pwd") == document.getElementById("pwd").value){//alert('登陆成功!')