# XML Datein mit JTable aktualisieren



## Alino (9. Feb 2005)

Hallo!

Ich Lese ein XML File und stellt die Werte als JTable auf eine JFrame dar. Jetzt will ich, wenn meine Tabelle sich ändern(löschen oder Änderung), den XML Dateien aktualisieren. 
Wie kann ich vorgehen?

Danke füe jede Hilfe!


----------



## foobar (9. Feb 2005)

Poste doch mal etwas Code, so pauschal lässt sich das nicht beantworten.


----------



## Alino (9. Feb 2005)

Was ich bis jetzt für speichern gemacht habe, is nur ein Test. Ich habe 16 InternalFrame die ich nach wahl öffnen kann. Aber wenn ich speicher will über eine Menu,ist meine Tabelle aktualisiert aber dier werte sind noch nicht im meinem XML Dateien

```
public static void save(){
		
		for(int i=0; i<internalFrame.length;i++){
			DefaultTableModel data=(DefaultTableModel) table.getModel();
			Object[] oa = data.getDataVector().toArray();
			System.out.println("ich"+oa[0]+tableDescription);
			if(tableDescription==oa[0]){
				System.out.println("bin+ich+hier");
				for(int w=0;w<oa.length;w++){
				Object[] o = ((Vector)oa[w]).toArray();
					for(int j=1;j<o.length;j++){
				
						if(entryValues!=data.getValueAt(w,j)){
							data.fireTableCellUpdated(w,j);
							tempEntry.getAttribute("value").setValue((String)data.getValueAt(w,j));
							System.out.println("entryValues="+(String)data.getValueAt(w,j));
						}
					}
				}
			}
		}
```


----------



## Alino (11. Feb 2005)

Ich habe meine Speicher-Methode so weit unter kontrolle. Aber wie ändere ich die Werte in XML- Dateien ohne eine 
new Document() zu benutzen.Weil eine neue Document wurde heissen ich schreibe alles mit Tagname,usw...

```
public static void save(){ 
		//Speichern im file config.xml
		tableList = root.getChildren("table"); 
		Iterator tableIterator = tableList.iterator();
		
		for(int i=0; i< tableList.size(); i++){
			table=TableModel[i];//hole nur die letzte Tabelle
			DefaultTableModel data=(DefaultTableModel) table.getModel();
			Object[] oa = data.getDataVector().toArray();	
						
				Element tableElement1;
		
				tableElement1 = (Element) tableIterator.next();	
				tableNames = tableElement1.getAttributeValue("name"); 
				tableDescription = tableElement1.getAttributeValue("description");
								
				List rowList = tableElement1.getChildren("row");
				Iterator rowIterator1 = rowList.iterator();
				System.out.println("hier"+0);
				Element tempRow;
			if(i==15){//hier muss ich noch eine passenden Bedingung nehmen.
				//while(rowIterator.hasNext()){
				for(int j=0; j< oa.length; j++){//oder j<oa.length
					Object[] o = ((Vector)oa[i]).toArray();
					tempRow = (Element) rowIterator1.next();
					rowNames = tempRow.getAttributeValue("name");
			
					List entryList = tempRow.getChildren("entry");
					entryIterator = entryList.iterator();
					Element tempEntry;
					System.out.println("hier"+1);
						//while(entryIterator.hasNext()){
						for(int k=1; k< o.length; k++){	
							//if(rowNames ==o[0].toString()){
							System.out.println("hier rowname "+rowNames);
							tempEntry = (Element) entryIterator.next();
							entryNames = tempEntry.getAttributeValue("name");
							String entryTyp = tempEntry.getAttributeValue("type");
							//String entryDesc = tempEntry.getAttributeValue("description");
							Attribute value =tempEntry.getAttribute("value");
							String entryValue =tempEntry.getAttributeValue("value");
								if(data.getValueAt(j,k).toString()!=entryValue){
									System.out.println("hier"+3+entryValue+" "+data.getValueAt(j,k)+j+k);
									value.detach();//lösche
									entryValue = data.getValueAt(j,k).toString();
									//tempEntry.getAttribute("value").setValue(entryValue);
									value.setValue(entryValue);
									tempEntry.setAttribute("value",entryValue);
									//->hier hätte ich gern value als Attribute vom dem aktuelle
									//tempEntry in meine XML file.
									System.out.println("hier"+4+tempEntry+" "+value);				
								}
							//}//if
						}//for
				}//for
			}//if
		}//for 
		
	}
```


----------

