2016-08-20 1 views
0

좀 선언 및 태그와 MarkupBuilder와 XML 파일을 구축을 위해 노력하고의 도움으로 xml 파일에 일부 선언 행을 추가하지만 난 다음 라인을 구축 할 수있는 솔루션을 찾을 수없는는 MarkupBuilder

<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
xml 파일의

.

내가 어떤 도움을 주셔서 감사합니다

코드

def writer = new StringWriter() 
def xml = new groovy.xml.MarkupBuilder(writer) 
xml.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8") 
xml.Documents { 
    Placemark() { 
     name("mapData") 
     styleUrl("#m_ylw-pushpin") 
     LineString(){ 
     tessellate("1") 
     coordinates("8.463415562903656,47.97716901704985,0 8.462984259089152,47.97656710950728,0 8.461242137735676,47.97352418265724,0 8.485274199626216") 
      } 

    } 
} 

println writer.toString() 

예를

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
<Document> 
    </StyleMap> 
    <Placemark> 
     <name>mapData</name> 
     <styleUrl>#m_ylw-pushpin</styleUrl> 
     <LineString> 
      <tessellate>1</tessellate> 
      <coordinates> 
       8.463415562903656,47.97716901704985,0 8.462984259089152,47.97656710950728,0 8.461242137735676,47.97352418265724,0 8.485274199626216 
      </coordinates> 
     </LineString> 
    </Placemark> 
</Document> 
</kml> 

전류 출력

<?xml version='1.0' encoding='utf-8'?> 
<Documents> 
    <Placemark> 
    <name>mapData</name> 
    <styleUrl>#m_ylw-pushpin</styleUrl> 
    <LineString> 
     <tessellate>1</tessellate> 
     <coordinates>8.463415562903656,47.97716901704985,0 8.462984259089152,47.97656710950728,0 8.461242137735676,47.97352418265724,0 8.485274199626216</coordinates> 
    </LineString> 
    </Placemark> 
</Documents> 
+0

가능한 중복을 [ Howto는 groovy xml builder로 namespace 속성을 만듭니다.] (http://stackoverflow.com/questions/1345461/howto-make-namespace-attribute-with-groovy-xml-builder) –

+0

xml.kml {Documents {...}} 및 fol 중복 게시물의 예제가 낮 으면 대답은 간단해야합니다. –

+0

@MichaelEaster :하지만 태그에서 큰 따옴표를 어떻게 얻을 수 있습니까? 나는 항상'xmlns = 'http : //www.opengis.net/kml/2.2'라는 작은 따옴표를 얻고있다.'xmlns = "http://www.opengis.net/kml/2.2" – TheBook

답변

1

대신 단일

def writer = new StringWriter() 
def xml = new groovy.xml.MarkupBuilder(writer) 
xml.doubleQuotes = true 
xml.mkp.xmlDeclaration version: "1.0", encoding: "utf-8" 
xml.kml (xmlns:"http://www.opengis.net/kml/2.2", 
    "xmlns:gx": "http://www.google.com/kml/ext/2.2", 
    "xmlns:kml": "http://www.opengis.net/kml/2.2", 
    "xmlns:atom": "http://www.w3.org/2005/Atom" 
) { 
    Documents { 
     Placemark() { 
      name "mapData" 
      styleUrl "#m_ylw-pushpin" 
      LineString { 
       tessellate "1" 
       coordinates "8.463415562903656,47.97716901704985,0 8.462984259089152,47.97656710950728,0 8.461242137735676,47.97352418265724,0 8.485274199626216" 
      } 
     } 
    } 
} 

println writer.toString() 

출력의 따옴표 그것에 자식으로 Document를 추가하고 출력 빌더에 setDoubleQuotes(true)를 호출 최상위 요소로 kml를 추가의

<?xml version="1.0" encoding="utf-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
    <Documents> 
    <Placemark> 
     <name>mapData</name> 
     <styleUrl>#m_ylw-pushpin</styleUrl> 
     <LineString> 
     <tessellate>1</tessellate> 
     <coordinates>8.463415562903656,47.97716901704985,0 8.462984259089152,47.97656710950728,0 8.461242137735676,47.97352418265724,0 8.485274199626216</coordinates> 
     </LineString> 
    </Placemark> 
    </Documents> 
</kml>