Html Agility Pack 处理通配符

728 篇文章 1 订阅
21 篇文章 0 订阅
Html Agility Pack 处理通配符


let doc = new HtmlAgilityPack.HtmlDocument()
doc.LoadHtml( html )


========


let url = "http://Site.site.site"


let html = new HtmlAgilityPack.HtmlWeb()
let doc0 = html.Load  ( url ) 
html.OverrideEncoding <- doc0.Encoding
let doc = html.Load  ( url ) 








doc.DocumentNode.SelectNodes("//input")
|> Seq.map (fun i -> i.OuterHtml)
|> Seq.iter (printfn "%s")


<input id="tb_user" class="textbox_sty2" ...>
<input id="tb_pass" class="textbox_sty2" ...>
<input id="bt_ok" ...>
<input id="bt_cancle" ...>
<input type="hidden" name="__EVENTTARGET">
<input type="hidden" name="__EVENTARGUMENT">




doc.DocumentNode.SelectNodes("//input[contains(@id, 'bt')]")
|> Seq.map (fun i -> i.OuterHtml)
|> Seq.iter (printfn "%s")


<input id="bt_ok" ...>
<input id="bt_cancle" ...>




doc.DocumentNode.SelectNodes("//input[contains(@name, '__')]")
|> Seq.map (fun i -> i.OuterHtml)
|> Seq.iter (printfn "%s")


<input type="hidden" name="__EVENTTARGET">
<input type="hidden" name="__EVENTARGUMENT">


doc.DocumentNode.SelectNodes("//input[starts-with(@id, 'tb')]")
|> Seq.map (fun i -> i.OuterHtml)
|> Seq.iter (printfn "%s")


<input id="tb_user" class="textbox_sty2" ...>
<input id="tb_pass" class="textbox_sty2" ...>




http://www.w3school.com.cn/xpath/xpath_functions.asp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
架构的敏捷性是指一个体系结构设计的能力,能够适应不断变化的需求和环境。它强调使用灵活的方法来构建可扩展、易于修改和适应不同场景的系统。 首先,架构的敏捷性可以通过模块化的设计实现。模块化的架构将系统划分为相互独立的组件,使得修改一个组件不会对其他组件产生影响。这样就能够在不改变整体架构的情况下,快速响应变化的需求。 其次,架构的敏捷性还需要具备良好的可扩展性和可配置性。这意味着系统可以根据需要进行扩展,从而满足不断变化的需求。同时,系统的各个组件应该具有灵活的配置选项,使得可以快速调整系统的行为和功能。 另外,在架构设计中,还要注重减少耦合性。高度耦合的系统难以修改和扩展,而低耦合的系统则能够更容易地应对变化。通过使用松散耦合的设计模式和技术,可以使各个组件之间的依赖性减少,从而提高架构的敏捷性。 最后,架构的敏捷性也需要支持持续集成和自动化测试。持续集成确保系统的不断演化,并及时发现和解决问题,从而提高敏捷性。自动化测试可以快速验证系统的正确性和稳定性,帮助减少错误和风险。 总的来说,架构的敏捷性是根据需求和环境的变化,通过模块化、可扩展性、可配置性、减少耦合性以及持续集成和自动化测试等手段,使系统能够快速适应和响应变化,从而保持灵活和可持续的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值