-1
我使用Android簡化版本的SAX API解析KML文件,其中沒有處理程序。問題是,我呼籲根元素名稱不匹配。預計
RootElement root = new RootElement("kml");
崩潰給我這樣的錯誤:
java.lang.RuntimeException: android.sax.BadXmlException: Line 2: Root element name does not match. Expected: 'kml', Got: 'http://www.opengis.net/kml/2.2:kml'
這是文件被解析開頭:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> etc...
我我正在讀這本書,但它仍然在造成錯誤。我在堆棧溢出上看到過其他帖子,但它們與SAXParserFactory有關,您可以在其中禁用XML架構驗證。不幸的是,在這裏我不能。
謝謝!
您是否嘗試指定KML名稱空間;例如RootElement root = new RootElement('「http://opengis.net/kml/2.2」',「kml」) – JasonM1
@ JasonM1謝謝你的解決。一個愚蠢的問題是,由於URL是「harcdcoded」,如果他們將來改變KML的名稱空間會發生什麼。該應用程序會再次崩潰,對吧? – Javi
命名空間需要匹配你正在解析的內容,否則再次得到解析錯誤。 – JasonM1