2013-12-05 3 views
-1

Я использую библиотеку JAK для создания некоторого KML и создания стиля. По какой-то причине URL в настоящее время неверен его поворота '&' в '& усилитель'Java JAK malforming URL

document.createAndAddStyle().withId("styleTest").createAndSetIconStyle().withScale(1.399999976158142).withIcon(new Icon().withHref("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + ffffff)); 

Результат

http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2| 

Что мне нужно

http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2| 

Я не думаю, что это ява вызвав проблему, но я могу ошибаться.

Значение представляется верным вплоть до его письменного использованием .marshall()

Я не думаю, что CDATA будет работать

<Style id="randomColorIcon"> 
      <IconStyle> 
       <scale>1.399999976158142</scale> 
       <heading>0.0</heading> 
       <Icon> 
        <href>http://chart.apis.google.com/chart?chst=d_map_pin_letter&amp;chld=%E2%80%A2|ff0000</href> 
        <refreshInterval>0.0</refreshInterval> 
        <viewRefreshTime>0.0</viewRefreshTime> 
        <viewBoundScale>0.0</viewBoundScale> 
       </Icon> 
      </IconStyle> 
     </Style> 

CDATA подход приводит к

<href>&lt;![CDATA[http://chart.apis.google.com/chart?chst=d_map_pin_letter&amp;chld=%E2%80%A2|ff0000]]&gt;</href> 


String high = "<![CDATA[http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + ((PropertiesObj)this.prop.get(2)).maxColor; 
+1

В амбунированном формате недействительны простые амперсанды, они должны быть экранированы до '&' http://stackoverflow.com/questions/1328538/how-do-i-escape-ampersands-in-xml/1328557#1328557 – geocodezip

+1

[CDATA может работать также] (http://stackoverflow.com/questions/1328538/how-do-i-escape-ampersands-in-xml/1328563#1328563) – geocodezip

+0

обновлено с помощью значения kml. Я не думаю, что cdata будет работать для href – user3032973

ответ

0

Это, похоже, работает с JAK-> KML

document.createAndAddStyle().withId("highPin").createAndSetIconStyle().withScale(1.399999976158142).withIcon(new Icon().withHref("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + ((PropertiesObj)this.prop.get(2)).maxColor));