问题在黑莓的XML解析 [英] Problem in parsing xml in blackberry

查看:219
本文介绍了问题在黑莓的XML解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用SAX解析器从HTTP URL解析XML数据。
我创建一个BlackBerry应用程序,显示从另一个位置的位置方向上的数据。

我的应用程序解析非常准确地对某些位置的数据但对于一些地方,给我org.xml.sax.SAXParseException:结束标记不匹配开始标记元

当我跟踪我的应用程序,然后我才知道,数据是从HTTP URL来是不正确的,虽然网址中包含正确的XML数据

我解析XML数据:

 <?XML版本=1.0编码=UTF-8&GT?;
< D​​irectionsResponse>
 <状态>&OK LT; /状态>
 <&路线GT;
  <总结> I-65 N和AL-14 W< /总结>
  <&腿GT;
   &所述;步骤>
    <&TRAVEL_MODE GT;驾驶< / TRAVEL_MODE>
    <&START_LOCATION GT;
     <&纬度GT; 32.4582500< /纬度>
     < LNG> -86.3841000< / LNG>
    < / START_LOCATION>
    <&END_LOCATION GT;
     <&纬度GT; 32.4582300< /纬度>
     < LNG> -86.3832400< / LNG>
    < / END_LOCATION>
    <折线>
     <&点GT; aobeEr {fnOJyCGQ< /点>
     <&各级GT; B B< /水平>
    < /折线>
    <持续时间GT;
     < VALUE> 8示/值&​​GT;
     <文本> 1分钟< /文字和GT;
    < /持续时间GT;
    < html_instructions> HEAD&放大器; LT; B和; GT;&东部放大器; LT; / B&放大器; GT;在与放大器; LT; B和; GT;市场街及放大器; LT; / B&放大器; GT;< / html_instructions>
    <距离和GT;
     < VALUE> 81 LT; /值>
     <文字和GT 266立方英尺LT; /文字和GT;
    < /距离>
   < /步骤>
   &所述;步骤>
    <&TRAVEL_MODE GT;驾驶< / TRAVEL_MODE>
    <&START_LOCATION GT;
     <&纬度GT; 32.4582300< /纬度>
     < LNG> -86.3832400< / LNG>
    < / START_LOCATION>
    <&END_LOCATION GT;
     <&纬度GT; 32.4602500< /纬度>
     < LNG> -86.3831700< / LNG>
    < / END_LOCATION>
    <折线>
     <&点GT;} nbeEfvfnOsKM< /点>
     <色阶和GT; BB< /水平>
    < /折线>
    <持续时间GT;
     < VALUE> 25℃/值>
     <文本> 1分钟< /文字和GT;
    < /持续时间GT;
    < html_instructions>打开和放大器; LT; B和; GT;左,放大器; LT; / B&放大器; GT;留在&安培; LT; B和; GT;市场街及放大器; LT; / B&放大器; GT;< / html_instructions>
    <距离和GT;
     < VALUE> 226 LT; /值>
     <文字和GT; 0.1英里< /文字和GT;
    < /距离>
   < /步骤>
   &所述;步骤>
    <&TRAVEL_MODE GT;驾驶< / TRAVEL_MODE>
    <&START_LOCATION GT;
     <&纬度GT; 32.4602500< /纬度>
     < LNG> -86.3831700< / LNG>
    < / START_LOCATION>
    <&END_LOCATION GT;
     <&纬度GT; 32.4603600< /纬度>
     < LNG> -86.3870500< / LNG>
    < / END_LOCATION>
    <折线>
     <&点GT;问{beExufnOUfW< /点>
     <色阶和GT; BB< /水平>
    < /折线>
    <持续时间GT;
     < VALUE> 61℃; /值>
     <文本> 1分钟< /文字和GT;
    < /持续时间GT;
    < html_instructions>打开和放大器; LT; B和; GT;左,放大器; LT; / B&放大器; GT;到&放大器; LT; B和; GT;科布斯福特路/录2及LT; / B&放大器; GT;< / html_instructions>
    <距离和GT;
     < VALUE> 364 LT; /值>
     <文字和GT; 0.2英里< /文字和GT;
    < /距离>
   < /步骤>
   &所述;步骤>
    <&TRAVEL_MODE GT;驾驶< / TRAVEL_MODE>
    <&START_LOCATION GT;
     <&纬度GT; 32.4603600< /纬度>
     < LNG> -86.3870500< / LNG>
    < / START_LOCATION>
    <&END_LOCATION GT;
     <&纬度GT; 32.4865600< /纬度>
     < LNG> -86.4070600< / LNG>
    < / END_LOCATION>
    <折线>
     <&点GT; G | beE`ngnOwBfDeExEcCjA {S @ z` @ mVlOoRdN【T @ BL @< /点>
     <&各级GT; B @ ?? @ B<?/水平>
    < /折线>
    <持续时间GT;
     < VALUE> 130℃; /值>
     <文本> 2分钟< /文字和GT;
    < /持续时间GT;
    < html_instructions>&轻微放大器; LT; B和; GT;右放大器; LT; / B&放大器; GT;合并到&放大器; LT; B和; GT; I-65 N'放大器; LT; / B&放大器; GT;朝与放大器; LT; B和; GT;&伯明翰放大器; LT; / B&放大器; GT;< / html_instructions>
    <距离和GT;
     < VALUE> 3478< /值>
     <文字和GT; 2.2 MI< /文字和GT;
    < /距离>
   < /步骤>
   &所述;步骤>
    <&TRAVEL_MODE GT;驾驶< / TRAVEL_MODE>
    <&START_LOCATION GT;
     <&纬度GT; 32.4865600< /纬度>
     < LNG> -86.4070600< / LNG>
    < / START_LOCATION>
    <&END_LOCATION GT;
     <&纬度GT; 32.4893200< /纬度>
     < LNG> -86.4084500< / LNG>
    < / END_LOCATION>
    <折线>
     <&点GT; _`heEbkknOeDbBwGvBiBx @< /点>
     <&各级GT; B 12的B< /水平>
    < /折线>
    <持续时间GT;
     < VALUE> 27 LT; /值>
     <文本> 1分钟< /文字和GT;
    < /持续时间GT;
    < html_instructions>以出口和放大器; LT; B和; GT; 181安培; LT; / B&放大器; GT;为&放大器; LT; B和; GT; AL-14放大器; LT; / B&放大器; GT;朝与放大器; LT; B和; GT;普拉特/威屯卡和放大器; LT; / B&放大器; GT;< / html_instructions>
    <距离和GT;
     < VALUE> 333< /值>
     <文字和GT; 0.2英里< /文字和GT;
    < /距离>
   < /步骤>
   &所述;步骤>
    <&TRAVEL_MODE GT;驾驶< / TRAVEL_MODE>
    <&START_LOCATION GT;
     <&纬度GT; 32.4893200< /纬度>
     < LNG> -86.4084500< / LNG>
    < / START_LOCATION>
    <&END_LOCATION GT;
     <&纬度GT; 32.4823000< /纬度>
     < LNG> -86.4286600< / LNG>
    < / END_LOCATION>
    <折线>
     <&点GT; gqheExsknO〜PvPpAhAVNJCnDbFjDvGnA`DnAnErA`I ^ fHtAbz @< /点>
     <&各级GT; b ??? @ ??? @ ?? B< /水平>
    < /折线>
    <持续时间GT;
     < VALUE> 228 LT; /值>
     <文本→4分钟< /文字和GT;
    < /持续时间GT;
    < html_instructions>打开和放大器; LT; B和; GT;左,放大器; LT; / B&放大器; GT;到&放大器; LT; B和; GT; AL-14 W&放大器; LT; / B&放大器; GT;< / html_instructions>
    <距离和GT;
     < VALUE> 2186< /值>
     <文字和GT; 1.4 MI< /文字和GT;
    < /距离>
   < /步骤>
   &所述;步骤>
    <&TRAVEL_MODE GT;驾驶< / TRAVEL_MODE>
    <&START_LOCATION GT;
     <&纬度GT; 32.4823000< /纬度>
     < LNG> -86.4286600< / LNG>
    < / START_LOCATION>
    <&END_LOCATION GT;
     <&纬度GT; 32.4755400< /纬度>
     < LNG> -86.4283300< / LNG>
    < / END_LOCATION>
    <折线>
     <&点GT; kegeEbronO〜XJtDU〜迪@ pCM中< /点>
     <&各级GT; b?B< /水平>
    < /折线>
    <持续时间GT;
     < VALUE> 68 LT; /值>
     <文本> 1分钟< /文字和GT;
    < /持续时间GT;
    < html_instructions>打开和放大器; LT; B和; GT;左,放大器; LT; / B&放大器; GT;到&放大器; LT; B和; GT;茉莉开拓者和放大器; LT; / B&放大器; GT;< / html_instructions>
    <距离和GT;
     < VALUE> 755< /值>
     <文字和GT; 0.5 MI< /文字和GT;
    < /距离>
   < /步骤>
   &所述;步骤>
    <&TRAVEL_MODE GT;驾驶< / TRAVEL_MODE>
    <&START_LOCATION GT;
     <&纬度GT; 32.4755400< /纬度>
     < LNG> -86.4283300< / LNG>
    < / START_LOCATION>
    <&END_LOCATION GT;
     <&纬度GT; 32.4755400< /纬度>
     < LNG> -86.4288500< / LNG>
    < / END_LOCATION>
    <折线>
     <&点GT;?C {eeE`ponO FB< /点>
     <色阶和GT; BB< /水平>
    < /折线>
    <持续时间GT;
     < VALUE> 11< /值>
     <文本> 1分钟< /文字和GT;
    < /持续时间GT;
    < html_instructions>打开和放大器; LT; B和; GT;右放大器; LT; / B&放大器; GT;到&放大器; LT; B和; GT;温德米尔大道和放大器; LT; / B&放大器; GT;&放大器; LT; D​​IV的风格=安培; QUOT; FONT-SIZE:0.9em&放大器; QUOT;&放大器; GT;目标将是在左边和放大器; LT; / DIV&放大器; GT;< / html_instructions>
    <距离和GT;
     < VALUE> 49 LT; /值>
     <文字和GT 161立方英尺LT; /文字和GT;
    < /距离>
   < /步骤>
   <持续时间GT;
    < VALUE> 558 LT; /值>
    <文字和GT; 9分钟< /文字和GT;
   < /持续时间GT;
   <距离和GT;
    < VALUE> 7472< /值>
    <文字和GT; 4.6 MI< /文字和GT;
   < /距离>
   <&START_LOCATION GT;
    <&纬度GT; 32.4582500< /纬度>
    < LNG> -86.3841000< / LNG>
   < / START_LOCATION>
   <&END_LOCATION GT;
    <&纬度GT; 32.4755400< /纬度>
    < LNG> -86.4288500< / LNG>
   < / END_LOCATION>
   <&START_ADDRESS GT; I65 SRV路E,米尔布鲁克,AL 36054,USA< / START_ADDRESS>
   <&END_ADDRESS GT;普拉特维尔,AL 36066,USA< / END_ADDRESS>
  < /腿>
  <版权>地图数据©2011谷歌< /版权>
  < overview_polyline>
   <points>aobeEr{fnOJyCGSsKKUfWwBfDeExEcCjA{s@z`@uNxIkNjJ{JlH{t@bl@eDbBwGvBiBx@~PvPpAhAVNJCnDbFjDvGnA`DnAnErA`I^fHtAbz@~XJtDU~Di@pCM?fB</points>
   &LT;&各级GT; B @@@ @?@?@ ?? 580 @ ??? @?@?@ B&LT;?/水平&GT;
  &LT; / overview_polyline&GT;
  &LT;&界限GT;
   &LT;西南&GT;
    &LT;&纬度GT; 32.4581900&LT; /纬度&GT;
    &LT; LNG&GT; -86.4288500&LT; / LNG&GT;
   &LT; /西南&GT;
   &LT;东北GT&;
    &LT;&纬度GT; 32.4893200&LT; /纬度&GT;
    &LT; LNG&GT; -86.3831700&LT; / LNG&GT;
   &LT; /东北和GT;
  &LT; /界限&GT;
 &LT; /路由&GT;
&LT; / DirectionsResponse&GT;


解决方案

你能告诉我它返回XML数据的网址是什么?有可能,这个问题可能是URL创建的。我已经使用在应用所有这些信息,我发现我的问题是不是URL解析器。

您可能有同样的问题,所以只使用+代替空格。让我知道,如果它的工作原理。

I am using SAX Parser to parse XML data from a http url. I am creating a BlackBerry application, that shows direction data from a location to another location.

My application parsed data for some locations very accurately but for some locations it gives me org.xml.sax.SAXParseException: End tag does not match start tag 'meta'.

when i traced my application then i came to know that data which is coming from http url is not correct, although url contains correct xml data

The XML data I am parsing:

<?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> 

解决方案

Can you show me the URL which returns this XML data? it may be possible that this problem can be of URL creation. i have used all these information in a app and i found that my problem was URL not parser.

You might be have the same problem so just use '+' instead of space. and let me know if it works.

这篇关于问题在黑莓的XML解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆