NekoHtml在属性中有多个值

时间:2014-06-04 15:34:30

标签: java html xml

我遇到NekoHTML问题 我尝试解析HTML页面,其中一些最终标签具有类型类的属性。这些属性必须具有多个值,例如class =' ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable'问题是使用NekoHtml,只提取类的第一个值然后:class =' ui-dialog'

我使用的代码如下,但我无法理解为什么会出现这种行为,以及我是否可以更改它。

    URL newURL = new URL(url);
    Reader source = new BufferedReader(new InputStreamReader(newURL.openStream(), "UTF-8"));
    doc = parseHTML(source);

修改

public Document parseHTML(Reader in) throws SAXException, IOException {
    DOMParser parser = new DOMParser();
    parser.setFeature("http://xml.org/sax/features/namespaces", false);
    parser.setFeature("http://cyberneko.org/html/features/balance-tags", true);
    XMLDocumentFilter[] filters = { new Purifier() };
    parser.setProperty("http://cyberneko.org/html/properties/filters", filters);
    parser.parse(new InputSource(in));
    return parser.getDocument();
}

页面示例为http://www.123premier.com/used-cars/2257/hyundai-matrix/#

使用xpath表达式// A [@class =' addthis_button_facebook at300b']它找不到任何东西。但是,如果我在firefox中使用firebugs,它会给我正确的节点。 xpath表达式的代码如下

    XPath xPath = XPathFactory.newInstance().newXPath();
    DTMNodeList result = (DTMNodeList) xPath.evaluate("//A[@class='addthis_button_facebook at300b']", doc, XPathConstants.NODESET);

非常感谢。

0 个答案:

没有答案