我正在进口一项XML,然后根据XML提供的资料编制一份物体清单。
这是我的XML样本:
<DCUniverse>
<SuperHeroes>
<SuperHero>
<SuperHeroName>SuperMan</SuperHeroName>
<SuperHeroDesc>Surviver of Krypton; Son of Jor-el</SuperHeroDesc>
<SuperHeroCode>SM</SuperHeroCode>
<SuperHeroAttrs>
<SuperHeroAttr Name="Strength">All</SuperHeroAttr>
<SuperHeroAttr Name="Weakness">Kryptonite</SuperHeroAttr>
<SuperHeroAttr Name="AlterEgo">Clark Kent</SuperHeroAttr>
</SuperHeroAttrs>
</SuperHero>
<SuperHero>
<SuperHeroName>Batman</SuperHeroName>
<SuperHeroDesc>The Dark Knight of Gothom City</SuperHeroDesc>
<SuperHeroCode>BM</SuperHeroCode>
<SuperHeroAttrs>
<SuperHeroAttr Name="Strength">Intellect</SuperHeroAttr>
<SuperHeroAttr Name="Weakness">Bullets</SuperHeroAttr>
<SuperHeroAttr Name="AlterEgo">Bruce Wayne</SuperHeroAttr>
</SuperHeroAttrs>
</SuperHero>
</SuperHeroes>
<DCUniverse>
这里是我用来制造物体的粗体文字的一个例子:
class Hero{
def SuperHeroName
def SuperHeroDesc
def SuperHeroCode
def SuperHeroAttrLst = [:]
Hero(String name, String desc, String code, attrLst){
this.SuperHeroName=name
this.SuperHeroDesc=desc
this.SuperHeroCode=code
this.SuperHeroAttrLst.putAll(attrLst)
}
}
def heroList = []
def heroDoc = new XmlParser().parse( dossier.xml )
heroDoc.SuperHeroes.each{ faction ->
faction.SuperHero.each{ hero ->
heroList += new Hero( hero.SuperHeroName.text(),
hero.SuperHeroDesc.text(),
hero.SuperHeroCode.text(),
hero.SuperHeroAttrs.SuperHeroAttr.each{ attr ->
return [ (attr. @Name ) : (attr.text()) ]
})
}
}
在我操作上述法典时,我有以下错误:
java.lang.ClassCastException: groovy.util.Node cannot be cast to java.util.Map$Entry
我强烈地感到,它有一些东西可以与最后几个变数做,即封锁正试图向海洛因级司机运送。 评论
this.SuperHeroAttrLst.putAll(attrLst)
在海洛因司机中,该笔药至少能正确穿透。 我试图做的是,根据《国际洗钱法》设立一个班级,并将其列入名单如下:
heroList += new Hero( Batman ,
The Dark Knight of Gothom City ,
BM ,
[ Strength : Intellect , Weakness : Bullets , AlterEgo : Bruce Wayne ] )
然而,我不同的打字不正确,我全心全意知道格罗莫夫· s(或 Java)的辛塔克斯,以便发挥作用。
可以提供的任何帮助都将受到高度赞赏。 感谢你时间。