在黑莓中解析xml的问题

时间:2011-04-19 07:46:48

标签: xml parsing blackberry

我正在使用SAX Parser来解析来自http url的XML数据。 我正在创建一个BlackBerry应用程序,它显示从一个位置到另一个位置的方向数据。

我的应用程序非常准确地解析了某些位置的数据,但是对于某些位置,它给了我org.xml.sax.SAXParseException:结束标记与开始标记'meta'不匹配。

当我跟踪我的应用程序时,我发现来自http url的数据不正确,尽管url包含正确的xml数据

我正在解析的XML数据:

<?xml version="1.0" encoding="UTF-8"?> 
<DirectionsResponse> 
 <status>OK</status> 
 <route> 
  <summary>I-65 N and AL-14 W</summary> 
  <leg> 
   <step> 
    <travel_mode>DRIVING</travel_mode> 
    <start_location> 
     <lat>32.4582500</lat> 
     <lng>-86.3841000</lng> 
    </start_location> 
    <end_location> 
     <lat>32.4582300</lat> 
     <lng>-86.3832400</lng> 
    </end_location> 
    <polyline> 
     <points>aobeEr{fnOJyCGQ</points> 
     <levels>B?B</levels> 
    </polyline> 
    <duration> 
     <value>8</value> 
     <text>1 min</text> 
    </duration> 
    <html_instructions>Head &lt;b&gt;east&lt;/b&gt; on &lt;b&gt;Market St&lt;/b&gt;</html_instructions> 
    <distance> 
     <value>81</value> 
     <text>266 ft</text> 
    </distance> 
   </step> 
   <step> 
    <travel_mode>DRIVING</travel_mode> 
    <start_location> 
     <lat>32.4582300</lat> 
     <lng>-86.3832400</lng> 
    </start_location> 
    <end_location> 
     <lat>32.4602500</lat> 
     <lng>-86.3831700</lng> 
    </end_location> 
    <polyline> 
     <points>}nbeEfvfnOsKM</points> 
     <levels>BB</levels> 
    </polyline> 
    <duration> 
     <value>25</value> 
     <text>1 min</text> 
    </duration> 
    <html_instructions>Turn &lt;b&gt;left&lt;/b&gt; to stay on &lt;b&gt;Market St&lt;/b&gt;</html_instructions> 
    <distance> 
     <value>226</value> 
     <text>0.1 mi</text> 
    </distance> 
   </step> 
   <step> 
    <travel_mode>DRIVING</travel_mode> 
    <start_location> 
     <lat>32.4602500</lat> 
     <lng>-86.3831700</lng> 
    </start_location> 
    <end_location> 
     <lat>32.4603600</lat> 
     <lng>-86.3870500</lng> 
    </end_location> 
    <polyline> 
     <points>q{beExufnOUfW</points> 
     <levels>BB</levels> 
    </polyline> 
    <duration> 
     <value>61</value> 
     <text>1 min</text> 
    </duration> 
    <html_instructions>Turn &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Cobbs Ford Rd/Co Rd 2&lt;/b&gt;</html_instructions> 
    <distance> 
     <value>364</value> 
     <text>0.2 mi</text> 
    </distance> 
   </step> 
   <step> 
    <travel_mode>DRIVING</travel_mode> 
    <start_location> 
     <lat>32.4603600</lat> 
     <lng>-86.3870500</lng> 
    </start_location> 
    <end_location> 
     <lat>32.4865600</lat> 
     <lng>-86.4070600</lng> 
    </end_location> 
    <polyline> 
     <points>g|beE`ngnOwBfDeExEcCjA{s@z`@mVlOoRdN{t@bl@</points> 
     <levels>B?@??@?B</levels> 
    </polyline> 
    <duration> 
     <value>130</value> 
     <text>2 mins</text> 
    </duration> 
    <html_instructions>Slight &lt;b&gt;right&lt;/b&gt; to merge onto &lt;b&gt;I-65 N&lt;/b&gt; toward &lt;b&gt;Birmingham&lt;/b&gt;</html_instructions> 
    <distance> 
     <value>3478</value> 
     <text>2.2 mi</text> 
    </distance> 
   </step> 
   <step> 
    <travel_mode>DRIVING</travel_mode> 
    <start_location> 
     <lat>32.4865600</lat> 
     <lng>-86.4070600</lng> 
    </start_location> 
    <end_location> 
     <lat>32.4893200</lat> 
     <lng>-86.4084500</lng> 
    </end_location> 
    <polyline> 
     <points>_`heEbkknOeDbBwGvBiBx@</points> 
     <levels>B??B</levels> 
    </polyline> 
    <duration> 
     <value>27</value> 
     <text>1 min</text> 
    </duration> 
    <html_instructions>Take exit &lt;b&gt;181&lt;/b&gt; for &lt;b&gt;AL-14&lt;/b&gt; toward &lt;b&gt;Prattville/Wetumpka&lt;/b&gt;</html_instructions> 
    <distance> 
     <value>333</value> 
     <text>0.2 mi</text> 
    </distance> 
   </step> 
   <step> 
    <travel_mode>DRIVING</travel_mode> 
    <start_location> 
     <lat>32.4893200</lat> 
     <lng>-86.4084500</lng> 
    </start_location> 
    <end_location> 
     <lat>32.4823000</lat> 
     <lng>-86.4286600</lng> 
    </end_location> 
    <polyline> 
     <points>gqheExsknO~PvPpAhAVNJCnDbFjDvGnA`DnAnErA`I^fHtAbz@</points> 
     <levels>B???@???@??B</levels> 
    </polyline> 
    <duration> 
     <value>228</value> 
     <text>4 mins</text> 
    </duration> 
    <html_instructions>Turn &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;AL-14 W&lt;/b&gt;</html_instructions> 
    <distance> 
     <value>2186</value> 
     <text>1.4 mi</text> 
    </distance> 
   </step> 
   <step> 
    <travel_mode>DRIVING</travel_mode> 
    <start_location> 
     <lat>32.4823000</lat> 
     <lng>-86.4286600</lng> 
    </start_location> 
    <end_location> 
     <lat>32.4755400</lat> 
     <lng>-86.4283300</lng> 
    </end_location> 
    <polyline> 
     <points>kegeEbronO~XJtDU~Di@pCM</points> 
     <levels>B???B</levels> 
    </polyline> 
    <duration> 
     <value>68</value> 
     <text>1 min</text> 
    </duration> 
    <html_instructions>Turn &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Jasmine Trail&lt;/b&gt;</html_instructions> 
    <distance> 
     <value>755</value> 
     <text>0.5 mi</text> 
    </distance> 
   </step> 
   <step> 
    <travel_mode>DRIVING</travel_mode> 
    <start_location> 
     <lat>32.4755400</lat> 
     <lng>-86.4283300</lng> 
    </start_location> 
    <end_location> 
     <lat>32.4755400</lat> 
     <lng>-86.4288500</lng> 
    </end_location> 
    <polyline> 
     <points>c{eeE`ponO?fB</points> 
     <levels>BB</levels> 
    </polyline> 
    <duration> 
     <value>11</value> 
     <text>1 min</text> 
    </duration> 
    <html_instructions>Turn &lt;b&gt;right&lt;/b&gt; onto &lt;b&gt;Windermere Ave&lt;/b&gt;&lt;div style=&quot;font-size:0.9em&quot;&gt;Destination will be on the left&lt;/div&gt;</html_instructions> 
    <distance> 
     <value>49</value> 
     <text>161 ft</text> 
    </distance> 
   </step> 
   <duration> 
    <value>558</value> 
    <text>9 mins</text> 
   </duration> 
   <distance> 
    <value>7472</value> 
    <text>4.6 mi</text> 
   </distance> 
   <start_location> 
    <lat>32.4582500</lat> 
    <lng>-86.3841000</lng> 
   </start_location> 
   <end_location> 
    <lat>32.4755400</lat> 
    <lng>-86.4288500</lng> 
   </end_location> 
   <start_address>I65 Srv Rd E, Millbrook, AL 36054, USA</start_address> 
   <end_address>Prattville, AL 36066, USA</end_address> 
  </leg> 
  <copyrights>Map data ©2011 Google</copyrights> 
  <overview_polyline> 
   <points>aobeEr{fnOJyCGSsKKUfWwBfDeExEcCjA{s@z`@uNxIkNjJ{JlH{t@bl@eDbBwGvBiBx@~PvPpAhAVNJCnDbFjDvGnA`DnAnErA`I^fHtAbz@~XJtDU~Di@pCM?fB</points> 
   <levels>B?@@@?@??@??@??A???@???@??@???@B</levels> 
  </overview_polyline> 
  <bounds> 
   <southwest> 
    <lat>32.4581900</lat> 
    <lng>-86.4288500</lng> 
   </southwest> 
   <northeast> 
    <lat>32.4893200</lat> 
    <lng>-86.3831700</lng> 
   </northeast> 
  </bounds> 
 </route> 
</DirectionsResponse> 

2 个答案:

答案 0 :(得分:0)

查看以下链接。

http://supportforums.blackberry.com/t5/Java-Development/http-demo-question/m-p/202507

请阅读本页的最后一个回复。有Ted_Hopp解释了这个问题。

答案 1 :(得分:0)

您能告诉我返回此XML数据的URL吗?这个问题可能是URL创建的问题。我在一个应用程序中使用了所有这些信息,我发现我的问题是URL不是解析器。

您可能遇到同样的问题,所以只需使用'+'而不是空格。并告诉我它是否有效。