html加载图标的xpath位置,在格式不正确的HTML中使用XPath查找节点(或...

XPath表达式无法再次针对格式不正确的XML文档进行评估,这正是上述情况.

可以通过两个链接的步骤来完成此操作,第一步是将HTML转换为格式正确的XML,然后是第二步-应用XPath表达式.

因此,该问题可以更精确地表述为“如何将HTML转换为XML,以便可以针对它评估XPath表达式”.

这里有两个很好的工具:

> TagSoup,一个开源程序,是由John Cowan开发的基于Java和SAX的工具.这是一种用Java编写的SAX兼容解析器,它不解析格式正确或有效的XML,而是对找到的HTML进行解析.在野外:贫穷,肮脏和野蛮,尽管常常离短缺很远. TagSoup是为需要使用某种合理的应用程序设计来处理这些东西的人设计的.通过提供SAX接口,它甚至可以将标准XML工具应用于最差的HTML. TagSoup还包括一个命令行处理器,该处理器可以读取HTML文件,并可以生成干净的HTML或格式良好的XML(与XHTML极为相似).

Taggle是TagSoup的商业C端口.

> SgmlReader是由Microsoft的Chris Lovett开发的工具.

SgmlReader是任何SGML文档(包括对HTML的内置支持)上的XmlReader API.还提供了一个命令行实用程序,用于输出格式正确的XML结果.

下载包含独立可执行文件和完整源代码的zip文件:SgmlReader.zip

>由David Carlisle编写的The pure XSLT 2.0 Parser of HTML.阅读其代码对于我们每个人来说都是不错的学习练习.

根据描述:

“ d:htmlparse(字符串)

?d:htmlparse(字符串,命名空间,html模式)

一个参数形式等效于)

??d:htmlparse(string,’http://ww.w3.org/1999/xhtml‘,true()))

使用一些内置的试探法将字符串解析为HTML和/或XML)

??控制隐式元素的打开和关闭.

它没有HTML DTD的全部知识,但确实有HTML DTD的完整列表

??空元素和实体定义的完整列表. HTML实体,以及

??十进制和十六进制字符引用均被接受.注意html-entities

??即使html-mode = false()也可以识别.

元素名称是小写的(如果html-mode为true())并放在

??名称空间参数指定的名称空间(可以用“”表示

??除非输入具有明确的名称空间声明,否则为no-namespace,在

??在这种情况下,这些将得到兑现.

如果html-mode = true()“,属性名称将小写

阅读更详细的描述here.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值