最近的一个ios项目中需要把服务端的html代码进行解析,获取其中的排版以及文本的样式(字体颜色,大小,加粗,居中等)
这其中就需要用html解析库,ios中常用的功能比较完善的解析库TFHpple,所以开始使用的也是该库,但是根据项目的实际情况,解析代码的时候需要从外到内遍历所有的节点,但是TFHpple并没有提供树形的节点,所以在后来又不得不寻找一个新的方案来代替,经过搜索发现,GDataXMLNode 库可以将html转换成xml格式,并且把所有节点使用树形结构存储,这就使得从外到内的递归所有节点成为了可能!
由于后端配置html代码中主要以table的形式,所以在递归的时候需要单独处理以下节点
非根节点 table tr td strong p label span
根节点 text input select textarea ,遇到根节点跳出