Java htmlUnit получить XML-страницу ClassCastException проблема

1

У меня есть приложение Java, которое использует библиотеку HtmlUnit, и у меня возникла проблема при получении исходного кода с xml-страницы. Все, что я получаю, это ошибка класса ClassCastException.

Я использую последнюю библиотеку API HtmlUnit 2.15.

 public static void main(String[] args) {
    WebClient webClient = new WebClient(BrowserVersion.CHROME);
    webClient = new WebClient(BrowserVersion.CHROME);
    webClient.getOptions().setJavaScriptEnabled(true);
    webClient.getOptions().setActiveXNative(false);
    webClient.getOptions().setAppletEnabled(false);
    webClient.getOptions().setCssEnabled(true);
    webClient.getOptions().setPopupBlockerEnabled(true);
    webClient.getOptions().setPrintContentOnFailingStatusCode(false);
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
    webClient.getOptions().setThrowExceptionOnScriptError(true);
    webClient.getOptions().setTimeout(100000);
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.getOptions().setDoNotTrackEnabled(false);
    //webClient.getOptions().setProxyConfig(new ProxyConfig("10.0.0.1", 8080));
    try{    
        HtmlPage page = webClient.getPage("http://www.w3schools.com/xml/note.xml");
        // TODO, add your application code
        System.out.println(page.asXml());

    } catch (Exception e) {
        System.out.println("An error occurs when getting the page: "+e);
    }
}

Любые идеи о том, как я могу получить xml файл через библиотеку htmlunit и сохранить его в файл?

Теги:
htmlunit
classcastexception

1 ответ

0
Лучший ответ

Я понял это в конце.

Поворачивает наше, что вам сначала нужно импортировать com.gargoylesoftware.htmlunit.xml.XmlPage;

Затем вы можете объявлять объекты XmlPage, тем самым избегая проблемы с ClassCastException.

Таким образом, мой код выглядит так для тех, кто также знаком с HtmlUnit

public static void main(String[] args) {

    WebClient webClient = new WebClient(BrowserVersion.CHROME);

    XmlPage page = null;

    webClient = new WebClient(BrowserVersion.CHROME);
    webClient.getOptions().setJavaScriptEnabled(true);
    webClient.getOptions().setActiveXNative(false);
    webClient.getOptions().setAppletEnabled(false);
    webClient.getOptions().setCssEnabled(true);
    webClient.getOptions().setPopupBlockerEnabled(true);
    webClient.getOptions().setPrintContentOnFailingStatusCode(false);
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
    webClient.getOptions().setThrowExceptionOnScriptError(true);
    webClient.getOptions().setTimeout(100000);
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.getOptions().setDoNotTrackEnabled(false);
    //webClient.getOptions().setProxyConfig(new ProxyConfig("10.0.0.1", 8080));

    try {

        //go to url
        page = webClient.getPage("http://www.w3schools.com/xml/note.xml");
        System.out.println(xpage.asXml());

        //just for test save to file to see results
        File file = new File("result.html");
        FileOutputStream fos = new FileOutputStream(file);

        fos.write(xpage.asXml().getBytes());
        fos.close();
        //end test

    } catch (Exception e) {
        System.out.println("An error occurs when getting the page: "+e);

    }

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню