GroovyでXML解析の問題が少しあります。私はID、SIDとD1が必要Groovy:新しいXML構造の作成とビルド中に新しいノードを挿入する方法
ID 001=1234
sID 001=q8b6v
d1 001=some Text
d2 001=more Text2
tzh 001=data
dse 001=data
ID 001=567823
sID 001=l3n37v2
d1 001=some Text
d2 001=more Text2
hrg 001=data
dfe 001=data
...
:
これは私のようなデータが見えるもの、です。私はできるだけ単純にそれを維持したい
if(!dataFile.exists()){
println "File does not exist!"
}else{
def key1, key2, key3, key4
def val1, val2, val3, val4
xml.add{
doc {
dataFile.eachLine {line ->
if(line.startsWith(regExId)){
(key1, val1) = line.split(/001=/).collect {it.trim()}
field(name:key1, val1)
}
if(line.startsWith(regExEntryId)){
(key2, val2) = line.split(/001=/).collect {it.trim()}
field(name:key2, val2)
}
if(line.startsWith(regExTitle)){
(key3, val3) = line.split(/001=/).collect {it.trim()}
field(name:key3, val3)
}
}
}
}
:私のコードの一部だ
<add>
<doc>
<field name='ID'>00573419</field>
<field name='sID'>20120110572</field>
<field name='d1'>some Text</field>
</doc>
<doc>
<field name='ID'>00573406</field>
<field name='sID'>20120111110</field>
<field name='d1'>some Text2</field>
</doc>
</add>
:私が欲しいもの
What I get:
<add>
<doc>
<field name='ID'>00573419</field>
<field name='sID'>20120110572</field>
<field name='d1'>some Text</field>
<field name='ID'>00573406</field>
<field name='sID'>20120111110</field>
<field name='d1'>some Text2</field>
</doc>
</add>
:私は何を得る
。だから私が必要とするのは、「ここで新しいregExIdを起動して新しいxmlブロックを開始する」というようなステートメントで、必要に応じてデータの新しい部分(d2など)を簡単に追加できるようにすることです。既存のXMLファイルはありません。
ありがとうございました!
あなたのデータは、各行の末尾に ''
を持っていますか? –
私はこれを見ています...いいえ、それは各行の最後に
を持っていませんか? – Dave
その部分を編集しました。ありがとうございます。今それは正しいはずです。 – Dave