使用兼容解析器JAK解析由Google Earth生成的KML時存在一些奇怪的行爲。解析器預期的名稱空間不會被GE Kml生產系統編寫爲正確的名稱空間,並且在將該KML讀回另一個Java應用程序驗證失敗時。消毒KML Stream以更改xml命名空間
我們在讀取流時正在擺弄流,並用適當的名稱空間替換任何其他名稱空間的出現。這隻需要在文件開頭附近完成一次。嘗試的方法是將前幾行解析爲一個字符串,執行搜索和替換,創建字符串流,並使用SequenceInputStream將FileInputStream的「休息」連接到StringStream。但是這不起作用。任何想法將不勝感激。
這裏是什麼KML的xmlns片段開頭:
<code>
<kml xmlns="http://earth.google.com/kml/2.2">
</code>
這裏是我們想要替換:
<code>
<kml xmlns="http://www.opengis.net/kml/2.2">
</code>
順序流返回一個錯誤的可用值(僅適用於序列中的第一個流)導致解析器失敗。
沒有足夠的信息。您正在處理的內容和您期望的內容會非常有用。還有一個解釋是「不起作用」(異常,錯誤信息,輸出錯誤等) – 2009-10-08 17:55:29