2012-07-10 20 views
-1

這是html中的代碼,它提供了href,並且我想通過java中的鏈接下載kml文件。我不知道如何通過這些代碼來獲取kml文件來點擊並保存文件。HTML單元下載一個kml格式文件

HTML:

 <div class="section tab" style="display:block;" > 
      <ul> 
       <li> 
       <a href="/trip/27887/download/?fileformat=gpx" class="trip_download_bg trip_down_icon">GPX格式文件下載</a> 
       <div class="trip_down_content"> 
        <div class="trip_down_content_part_1">需要銀兩:3</div> 
        <label class="trip_down_content_part_2">內容介紹:</label> 
        <p class="trip_down_p"> 
        GPX格式軌跡文件是GPS數據文件通用格式,目前市面上大部分GPS設備都支持導出GPX文件格式。此文件是將作者原GPS軌跡文件經過格式轉換和標準化後自動生成。 
        </p> 
        <div class="cleanFix"></div> 
       </div> 
       <div class="cleanFix"></div> 
       </li> 
       <li> 
       <a href="/trip/27887/download/?fileformat=kml" class="trip_download_bg trip_down_icon" id="kml_icon">KML格式文件下載</a> 
       <div class="trip_down_content"> 
        <div class="trip_down_content_part_1">需要銀兩:3</div> 
        <label class="trip_down_content_part_2">內容介紹:</label> 
        <p class="trip_down_p"> 
        KML格式軌跡文件是用於GoogleEarth客戶端顯示GPS軌跡路線和航點信息的文件格式。此文件是將作者原GPS軌跡文件經過格式轉換和標準化後自動生成。 
        </p> 
        <div class="cleanFix"></div> 
       </div> 
       <div class="cleanFix"></div> 
       </li> 

如何使用Java點擊鏈接並保存KML文件?

<a href="/trip/27887/download/?fileformat=kml" class="trip_download_bg trip_down_icon" id="kml_icon">KML格式文件下載</a> 

Java代碼:

List<HtmlElement> nlink = downloadPage.getElementsByIdAndOrName("kml_icon"); 
for(int k=0;k<nlink.size();k++) { 
    String templink = nlink.get(k).getAttribute("href");  
    if(templink.contains("fileformat=kml")) { 
     System.out.println("href====>"+templink); 
     downloadPage.getAnchorByHref(templink); 
     //InputStream is = templink.click().getWebResponse().getContentAsStream(); 
    } 
} 
+0

會發生什麼事,當你取消註釋最後一行? – 2012-07-11 07:30:47

回答

0

應該在這個過程中更容易:

Page kmlPage = null; 
    for (HtmlAnchor a : downloadPage.getAnchors()) { 
     if (a.getHrefAttribute().contains("trip/27887/download/?fileformat=kml")) { 
      String url = a.getHrefAttribute(); 
      if (!url.startsWith("http")) { 
       url = "http://www.hostname.com" + url; 

      } 
      kmlPage = client.getPage(url); 
      // you can also do it it simplier if this below works 
      // kmlPage = a.click(); 

     } 
    } 

    String contentType = kmlPage.getWebResponse().getContentType(); 

    if (contentType.contains("kml")) { 
     InputStream kmlStream = factPage.getWebResponse().getContentAsStream(); 
    }