所以这是交易:
我正在访问一些网页(使用HtmlUnit),其中有一个按钮。我以编程方式点击该按钮(非常感谢Mads Hansen)
List l = page.getByXPath( "//input[@type='submit' and @value='Save as XML']" );
((HtmlSubmitInput)l.get(0)).click();
该按钮有一个onclick事件,如下:
onclick="document.forms[0].action="calcSaveXML_BG#POS";document.forms[0].submit()"
当我通过浏览器正常点击该按钮时,我有机会在我的硬盘上保存xml文件。
问题是,我希望能够以编程方式获取该xml文件。可以这样做吗?
答案 0 :(得分:1)
好的,我想出来了。如果有人有兴趣:
List l = page.getByXPath( "//input[@type='submit' and @value='Save as XML']" );
XmlPage result = ((HtmlSubmitInput)l.get(0)).click();
String xml = result.getContent();
try
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse( new java.io.ByteArrayInputStream( xml.getBytes( "UTF-8" ) ) );
doc.getDocumentElement().normalize();
//actual work going here
}
catch (Exception e)
{
e.printStackTrace();
}