htmlcleaner用xpath中查找node,若xpath调用contains函数会报:“org.htmlcleaner.XPatherException: Unknown function contains”。
htmlcleaner构建的Rootnode不能直接调用contains函数需要进行如下转换:
lazy val htmlCleaner = new HtmlCleaner
lazy val ISSNXPath = "//div[@class='bdy4']//b[contains(text(), '国际刊号')]"
def extract(path: String) = {
val root = htmlCleaner.clean(new File(path))
val doc = new DomSerializer(new CleanerProperties).createDOM(root)
val xpath = javax.xml.xpath.XPathFactory.newInstance.newXPath
val value = xpath.evaluate(ISSNXPath, doc, javax.xml.xpath.XPathConstants.NODE)
println(value)
val next = value.asInstanceOf[org.w3c.dom.Node].getNextSibling
println(next.getTextContent)
}
如上scala code所示:将htmlCleaner创建的根节点转为标准w3c节点,构建标准w3c XPath,进行查询即可。
对非Node后text类型文本的获取,可通过getNextSibling获得。
来自:
http://www.imilo.cn/findblog/28
分享到:
相关推荐
### Confluence管理未定义页面详解 #### 一、概述 Confluence是一款强大的团队协作与文档管理系统,被广泛应用于企业内部的知识共享与项目管理之中。在使用Confluence的过程中,经常会遇到“未定义页面”的情况,...
由于跨域安全限制,父页面与子页面之间可能存在通信障碍,导致在子页面中引用父页面的变量或对象时出现“对象未定义”的错误。在这种情况下,需要检查iframe的src属性,确保它们指向正确的URL,并且遵守同源策略。 ...
IE11也支持html2canvas该插件 Promise 未定义 引用该脚本即可
html2canvas在ie下报Promise未定义错误解决方案-附件资源
但有时会发现,在操作过程中无法对未定义的值、空值或基本数据类型(基元值,如字符串、数字等)设置反应属性,这会引发错误提示:“Cannot set reactive property on undefined, null, or primitive value”。...
Word宏出现“子过程或函数未定义”故障分析和解决方法 在Word宏中出现“子过程或函数未定义”的故障可能是由于多种原因引起的,包括宏里的VBA编辑器问题、用户版本或工具箱安装问题、Word版本问题等。本文将对这些...
然而,`CrawlSpider`在其基础上增加了`rules`属性,这使得它能够从爬取的页面中提取链接并继续爬取。`rules`属性是一个规则列表,每个规则都是`Rule`对象,定义了如何处理和跟随提取的链接。 `Rule`类包含以下关键...
### Sys未定义的解决方法 在开发Web应用程序时,可能会遇到“sys未定义”的错误,尤其是在使用Ajax与ASP.NET结合的场景中。这种错误通常是因为系统未能正确引用或加载Ajax相关的库导致的。本文将详细介绍如何解决...
解决.net4.5+解决WebForm_InitCallback() 未定义问题,直接在问题页面引用即可。
然而,在使用ThinkPHP5进行开发的过程中,经常会遇到因未定义变量而抛出异常的情况,这会导致页面出现错误提示:“页面错误,请稍后再试”。这个问题在开发和部署阶段尤其常见,对于提升用户体验和应用稳定性有重要...
然而,实现单例模式时,可能会遇到一些问题,比如“未定义的引用”错误,这通常是由于链接阶段找不到对应的符号导致的。这里我们将深入探讨如何解决这个问题。 首先,让我们理解为什么会出现“未定义的引用”错误。...
Excel中用户定义类型未定义的解决方法 Excel中用户定义类型未定义是指在编译时出现的错误提示,原因是对象未正确创建或未引用相关库文件。本文将详细介绍解决此类错误的方法。 一、正确创建对象 在定义对象时,...
在Vue.js开发过程中,我们经常会遇到在尝试渲染对象属性时,浏览器控制台抛出“未定义”的错误。这种情况通常是由于尝试访问的数据尚未被正确地挂载到Vue实例的`data`对象上,或者属性层级太深,Vue无法直接识别。...
在实际项目中,通常会在页面头部通过`<script>`标签引入这个文件,以确保在处理JSON数据前,JSON接口已经可用。 总结来说,"JSON2解决JSON未定义"意味着在不支持JSON的旧版IE浏览器中,可以通过引入JSON2.js这个库...
标题中的“JSON.stringify()报错:JSON未定义”是一个常见的JavaScript错误,通常出现在尝试使用`JSON.stringify()`方法但全局环境中没有定义JSON对象时。在浏览器环境中,JSON是默认支持的,但在某些旧版本的IE...
在IE浏览器中,有时会遇到“JSON未定义”的错误,特别是在使用兼容模式或者较旧版本的IE时。这是因为JSON(JavaScript Object Notation)是ECMAScript 5引入的一个内置对象,而在IE8及以下版本中并未原生支持JSON。...
然而,“AjaxControlToolkit未定义”这个错误提示通常意味着在尝试使用该工具包时遇到了问题。这可能是由于多种原因导致的,我们将深入探讨这些原因以及相应的解决方法。 首先,我们需要确保正确地引用了...
确保在使用任何JSON相关的代码之前加载这个库,通常是放在`<head>`标签内或页面底部的`<body>`标签关闭之前。 ```html <script src="json2.js"></script> ``` 2. **确保正确引用**:确保json2.js文件路径无误,且...