2016-12-10 29 views
0

Groovyでxmlをjsonに変換するのに助けが必要です。私が持っているXMLは、このGroovyでxmlからjsonへの変換

def xmlrecords = '''<root> 
         <node1>abc</node1> 
         <node2>def</node2> 
         <node3>hij</node3> 
         </root>''' 

のようなものである私は、これは非常に単純ですけど、私はグルーヴィーでグリップを得るのに苦労しています。だから、どんな助けも非常に高く評価されるでしょう。

ありがとうございました。

UPDATE

私は

def xml= new XmlParser().parseText(xmlrecords) 
def json = new JsonBuilder() 

json.records 
{ 
    node1 "abc" 
    node2 "def" 
    node3 "hij" 
} 

println json.toPrettyString() 

ような何かを行うことができますが、私がやりたいことから、この

json.records 
    { 
     node1 xml.node1 //xml.node1=abc 
     node2 xml.node2 
     node3 xml.node3 
    } 

のようなノードのデータにアクセスしていることを知っています各ノードが保存しているデータは、私のために変化し続けます。私が上に書いたコードは動作しませんし、私はこれ以上頭を痛めています。だから私を助けてくれますか?

+0

何か試しましたか?ヒント:XmlSlurperとJsonBuilder –

+0

@tim_yates私は正確に何を処理しているのかを編集して説明しました。 –

答えて

2

あなたは正しい軌道に乗ってかなりのです。 .xmlオブジェクトに.text()関数を適用するだけで済みました。

static main(args) { 

    def xmlrecords = '''<root> 
        <node1>abc</node1> 
        <node2>def</node2> 
        <node3>hij</node3> 
        </root>''' 

    def xml= new XmlParser().parseText(xmlrecords) 
    def json = new JsonBuilder() 

    json.records 
    { 
     node1 xml.node1.text() //xml.node1=abc 
     node2 xml.node2.text() 
     node3 xml.node3.text() 
    } 

    println json.toPrettyString() 
} 

出力

{ 
"records": { 
    "node1": "abc", 
    "node2": "def", 
    "node3": "hij" 
    } 
} 

・ホープ、このことができます下記参照します!

+0

ありがとう、本当に助けになりました。 –

0

直接XMLからJSONへの変換では、深くネストされた醜いJSONを作成できます。 XMLをJSONで必要な単純化された構造に変換する必要があります。

def xmlrecords = '''<root> 
         <node1>abc</node1> 
         <node2>def</node2> 
         <node3>hij</node3> 
        </root>''' 
def xml= new XmlParser().parseText(xmlrecords) 

// programmatically transform XML into Map with node name and value 
def map = new TreeMap() 
xml.each { 
map.put(it.name(), it.text()) 
} 

def json = JsonOutput.toJson(map) 
println JsonOutput.prettyPrint(json) 

JSON出力:

{ 
    "node1": "abc", 
    "node2": "def", 
    "node3": "hij" 
} 
+0

ありがとう、それは動作します。私はgroovyについてもっと学ぶことができるオンラインチュートリアルやウェブサイトをお勧めしますか? –

+0

Groovyチュートリアルがいくつかあります。この[チュートリアル](http://www.tutorialspoint.com/groovy/)と[ここ](https://leanpub.com/groovytutorial/read)を確認してください – JasonM1