php解释HTML/XML的几种方法

本文探讨了在处理HTML和XML数据时,如何选择合适的PHP库,包括原生XML扩展、DOM、SimpleXml等,并对比了第三方库的优劣,推荐了phpQuery、Zend_Dom、QueryPath等库,并提供了关于HTML5、WebServices和正则表达式的使用建议。

翻译的原文在这里,很多库我都没用过,所以仅简单记录一些特性,和我认为有用的库,以备不时之需。


原生XML扩展


建议用php 原生的xml扩展,通常要比第三方库要快,灵活性更高,我想怎么弄就怎么弄。

DOM

用这个dom扩展,你可以通过dom接口动态地读取或更新HTML。也可做xpath查询,它是基于libxml的。
学习DOM需要花些时间,不过也是值得,它是一个通用的接口,你在PHP学的这个技巧去到其它语言也能信手捻来。

SimpleXml

这个扩展可以非常方便地将xml转换成对象,但前提是xml需要是结构良好的xhtml,否则会出错。如果你解释的是不完整的html,还是用DOM扩展好。


第三方库(基于libxml)

如果你想用第三方库,建议使用那些构建在DOM/libxml之上的。

phpQuery

phpQuery 是一个服务器端,支持CSS3方式选择的DOM接口。此外它还可用于命令行。

Zend_Dom

其中的Zend_Dom_Query 提供一个统一的接口利用xpath或css选择器去查询DOM结构。

QeuryPath

QeuryPath 可以用来维护HTML/XML 它不单只是处理本地文件,web services 及数据库资源也可以处理。它很多地方都有点像jquery,不过记住它是用于服务器端的。


第三方库(不基于libxml)


SimpleHtmlDom

强烈不建议使用,效率太慢内存消耗严重。


HTML5

用上面库来解释html5有时会得不到想要的结果,因为HTML5的语法规则会有点不同, 像这里的例子,在现行的标准中script标签里面不能有“</”,但是hmtl5可以有。这时就要用一些专用的库来解释:

html5lib

html5lib可用于php和python的HTML 5 解释器。由于当html5标准还没最终定下来,只能说是目前最大程度兼容。当html5标准定下来后,我们应该会见到更多优秀的库。


WebServices


如果你不想自己写PHP,就用web services吧

YQL

YQL 是雅虎的webservice接口。允许你查询,过滤,组合来自不同地方的互联网数据。它就像SQL语言一样,有过数据库经验的开发人员不会对它陌生。


正则表达式

正则是最后最后的选择,不鼓励大范围使用。大部分的HTML结构复杂多变,只要多个空格,多个属性,你的表达式可能就匹配错误,你需要小心地去验证各个表达式的正确性,既然上面有这么多的解释器比你更熟悉HTML语法,你又何必冒太大的风险地白写一堆代码呢。


内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值