recuperer les valeurs d'un fichier XML sans ecraser l'autre
Bonjour ,
je fais un parsing de mon xml qui a cette allure
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<stage>
<title> titre232 </title>
<scene>
<height> 500 </height>
<width>500</width>
<vbox>
<id>1idV</id>
<translatex> 100TXV </translatex>
<translatey>100TYV </translatey>
<spacing>5SV </spacing>
<hbox>
<id> 1HB1 </id>
<translatex> 100TXH </translatex>
<translatey>100TYH </translatey>
<spacing>5SH </spacing>
<swinglabel>
<text> testlabel1 </text>
</swinglabel>
<textfield>
<text> 14 </text>
</textfield>
</hbox>
<hbox>
<id> 2HB2 </id>
<translatex> 100HBX </translatex>
<translatey>100HBY </translatey>
<spacing>4SH </spacing>
<swinglabel>
<text> testlabel2 </text>
</swinglabel>
<textfield>
<text> 12 </text>
</textfield>
</hbox>
</vbox>
</scene>
</stage> |
je recupere par la suite les valeurs via le pull parser :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
class Stage {
public var Idstage: Integer;
public var Title: String;
public var Idscene: Integer;
}
class Scene {
public var Idscene:Integer;
public var Title: String;
public var width: Integer;
public var heigh: Integer ; //Integer;
}
class Vbox {
public var Idvbox: Integer;
public var TranslateX: Integer;
public var TranslateY: Integer;
public var Spacing: Integer;
}
class Hbox {
public var IdHbox: Integer;
public var TranslateX: Integer;
public var TranslateY: Integer;
public var Spacing: Integer;
}
class Textfield {
public var Idtxt: String;
public var Text: String;
public var columns: Integer;
}
class Swingbutton {
public var Idbtn: Integer;
public var Text: String;
public var columns: Integer;
}
class Swinglabel {
public var Idlabel: Integer;
public var Text: String;
}
var stage: Stage ;
var scene: Scene ;
var vbox: Vbox;
var hbox: Hbox ;
var txt: Textfield ;
var btn: Swingbutton ;
var label: Swinglabel ;
stage = Stage {
} ;
scene = Scene {
};
vbox = Vbox {
};
hbox = Hbox {
};
//if(e.qname.name.equals("textfield") and e.level==5 ){
txt = Textfield {
};
btn = Swingbutton {
};
label = Swinglabel {
};
var starIntCount = java.lang.Float.valueOf(vbox.TranslateX).intValue() ;
var myparser = PullParser {
documentType: PullParser.XML;
onEvent: function (e: Event) {
if(e.type == PullParser.START_ELEMENT){
if(e.qname.name.equals("stage") ){
stage = Stage {
} ; }
if(e.qname.name.equals("scene") ){
scene = Scene {
}; }
if(e.qname.name.equals("vbox") ){
vbox = Vbox {
};
}
if(e.qname.name.equals("hbox") ){
hbox = Hbox {
}; }
//if(e.qname.name.equals("textfield") and e.level==5 ){
if(e.qname.name.equals("textfield") ){
txt = Textfield {
}; }
if(e.qname.name.equals("swingbutton") ){
btn = Swingbutton {
}; }
if(e.qname.name.equals("swinglabel") ){
label = Swinglabel {
}; }
}
if(e.type == PullParser.END_ELEMENT){
if(e.qname.name.equals("title") and e.level == 1){
stage.Title = e.text;
}
if(e.qname.name.equals("height") and e.level == 2){
scene.heigh = java.lang.Float.valueOf(e.text).intValue() ;
}
if(e.qname.name.equals("width") and e.level == 2){
scene.width = java.lang.Float.valueOf(e.text).intValue() ;
}
//1VBOX
if(e.qname.name.equals("id") and e.level == 3){
vbox.Idvbox =java.lang.Float.valueOf(e.text).intValue() ;
}
if(e.qname.name.equals("translatex") and e.level == 3){
vbox.TranslateX = java.lang.Float.valueOf(e.text).intValue() ;
}
if(e.qname.name.equals("translatey") and e.level == 3){
vbox.TranslateY = java.lang.Float.valueOf(e.text).intValue() ;
}
if(e.qname.name.equals("spacing") and e.level == 3){
vbox.Spacing = java.lang.Float.valueOf(e.text).intValue() ;
}
//hbox
if(e.qname.name.equals("id") and e.level == 4){
hbox.IdHbox = java.lang.Float.valueOf(e.text).intValue() ;
}
if(e.qname.name.equals("translatex") and e.level == 4){
hbox.TranslateX = java.lang.Float.valueOf(e.text).intValue() ;
}
if(e.qname.name.equals("translatey") and e.level == 4){
hbox.TranslateY = java.lang.Float.valueOf(e.text).intValue() ;
}
if(e.qname.name.equals("spacing") and e.level == 4){
vbox.Spacing = java.lang.Float.valueOf(e.text).intValue() ;
}
if(e.qname.name.equals("text") and e.level == 5){
label.Text = e.text ;
}
if(e.qname.name.equals("columns") and e.level == 5){
txt.columns = java.lang.Float.valueOf(e.text).intValue() ;
}
}
}
input: new FileInputStream("sandwich.xml"); |
le problem est comme vous le voyez dans le XML,il y'a deux "Hbox",mais quand je recupe la valeur comme je fais,la premiere valeur de Hbox sera ecrasé par la deusiéme..
comment faire pour remedier à ca ?
merci d'Avance .