2013-10-02 102 views
0

我正在google-maps kml上工作。我有几个shapefile文件,并使用QGIS将其转换为kml文件。我需要更新标签结构以应用BalloonStyle。 kml add extended data 我需要的标签结构转换像更新kml标签

  <SchemaData schemaUrl="#new_circle"> 
       <SimpleData name="Name">7</SimpleData> 
       <SimpleData name="gid">1</SimpleData> 
       <SimpleData name="active_sub">4596</SimpleData> 
       <SimpleData name="net_additi">5181</SimpleData> 
       <SimpleData name="gross_addi">3917</SimpleData> 
       <SimpleData name="churn">4617</SimpleData> 
      </SchemaData>--> 

皈依

<Data name="name"> 
        <value>7</value> 
       </Data> 
       <Data name="active_sub"> 
        <value>4596</value> 
       </Data> 
       <Data name="net_additi"> 
        <value>5181</value> 
       </Data> 
       <Data name="gross_additi"> 
        <value>3917</value> 
       </Data> 
       <Data name="churn"> 
        <value>4617</value> 
       </Data> 

是否有任何查找和替换算法或任何其他软件出口马力为KML我有检查不同的软件和在线转换器,也检查ogr2ogr,但所有这些都给标签结构以简单的数据。
在此先感谢....

回答

0

我更新了使用jdom库创建java类的kml。为此我需要做一些手动任务。删除kml标签,然后处理文件。这里是类我对这个

import java.io.File; 
import java.io.FileWriter; 
import java.util.Iterator; 
import java.util.List; 
import org.jdom.Document; 
import org.jdom.Element; 
import org.jdom.input.SAXBuilder; 
import org.jdom.output.XMLOutputter; 
/** 
* @author amit 
*/ 
public class XMLParser { 
    private void getXMLDetails() { 
     try { 
      SAXBuilder builder = new SAXBuilder(); 
      File file = new File("sample.xml"); 
      if (file.exists()) { 
       Document document = (Document) builder.build(file); 
       Element root = document.getRootElement(); 
       System.out.println(root.getChildren()); 
       Element firstTag = root.getChild("Folder"); 
       //firstTag.getAttribute("tag").setValue("file"); 
       List rootdata = firstTag.getChildren(); 
       System.out.println(rootdata); 
       for(Iterator<Element> i = rootdata.iterator(); i.hasNext();) { 
        Element rootitem =i.next(); 
        if(rootitem.getName() =="Placemark"){ 
        System.out.println(rootitem.getChildren("ExtendedData")); 
        List listdata = rootitem.getChild("ExtendedData").getChild("SchemaData").getChildren(); 
        for(Iterator<Element> j = listdata.iterator(); j.hasNext();) { 
         Element item =j.next(); 
         System.out.println(item); 
         String gidval = item.getText(); 
         Element gid = new Element("value").setText(gidval); 
         item.setText(""); 
         item.addContent(gid); 
         System.out.println("test"); 
        } 
        } 
       } 
       String des = new XMLOutputter().outputString(document); 
       des = des.replaceAll("SimpleData", "Data"); 
       des = des.replaceAll("</SchemaData>", ""); 
       des = des.replaceAll("<SchemaData schemaUrl=\"#new_area\">", ""); 
       System.out.println("String: " + des.replaceAll("SimpleData", "Data")); 
       FileWriter fileWriter = new FileWriter(file); 
       fileWriter.write(des); 
       fileWriter.close(); 
      } else { 
       System.out.println("File does not exist"); 
      } 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    public static void main(String argS[]) { 
     try { 
      new XMLParser().getXMLDetails(); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

这里创建的是链接,罐子JDOM lib
感谢