如何在htmlunit中删除页面的元素

时间:2010-09-24 11:33:30

标签: java dom htmlunit

通常在PHP中,我只会解析旧文档并写入新文档,同时忽略不需要的元素。

2 个答案:

答案 0 :(得分:1)

这是我提出的第一个解决方案:

            DocumentBuilder builder = DocumentBuilderFactory
                                      .newInstance()
                                      .newDocumentBuilder();

            StringReader reader = new StringReader( xml );
            Document document = builder.parse( new InputSource(reader) );

            XPathExpression expr = XPathFactory
                                   .newInstance()
                                   .newXPath()
                                   .compile( ... );

            Object result = expr.evaluate(document, XPathConstants.NODESET);

            Element el = document.getDocumentElement();
            NodeList nodes = (NodeList) result;
            for (int i = 0; i < nodes.getLength(); i++) {
                el.removeChild( nodes.item(i) );
            }

你可以看到它有点长。作为一名努力追求简单的程序员,我决定采取艾哈迈德的建议,希望我能找到更好的解决方案,我想出了这个:

            List<?> elements = page.getByXPath( ... );

            DomNode node = null;
            for( Object o : elements ) {
                node = (DomNode)o;
                node.getParentNode().removeChild( node );
            }

请注意这些只是片段,我省略了导入和XPath表达式,但你明白了。

答案 1 :(得分:0)