hallo,
ich suche eine loesung um in einem größeren xml element einen einzelnen element content zu veraendern / ueberschreiben
zur zeit sieht das bei mir so aus:
hier soll neu geschrieben werden:
die klasse data:
und hier kommt mein xml dokument her:
leider klappt es so nicht, mein elementinhalt zu ueberschreiben.
habe mir auch schon jaxb angeschaut, versteh da aba nur bahnhof
gibt es eine moeglichkeit, meinen quelltext so zu erweitern, dass gewuenschter effekt ( deleteflag von 0 auf 1 setzen ) realisiert werden kann?
thx
ich suche eine loesung um in einem größeren xml element einen einzelnen element content zu veraendern / ueberschreiben
zur zeit sieht das bei mir so aus:
hier soll neu geschrieben werden:
Code:
//helpers.java public static void deleteEntry(String currentIndex){ XmlData dummy = new XmlData(); for (data dummy2 : dummy.myData){ if (dummy2.getindex().equals(currentIndex)){ dummy2.setDeleteFlag("1"); } } try { TransformerFactory.newInstance().newTransformer().transform(new DOMSource(XmlData.dom) , new StreamResult(new FileOutputStream("save.xml"))); } catch (TransformerConfigurationException e) { // TODO exceptionhandling } catch (TransformerException e) { // TODO exceptionhandling } catch (TransformerFactoryConfigurationError e) { // TODO exceptionhandling } catch (IOException e) { // TODO exceptionhandling } }
Code:
//data.java public class data { private String index; private String DeleteFlag; private String LizenzName; private String OracleCsi; public data(String index, String DeleteFlag, String LizenzName, String OracleCsi) { this.index = index; this.DeleteFlag = DeleteFlag; this.LizenzName = LizenzName; this.OracleCsi = OracleCsi; } public String getindex(){ return index; } public void setindex(String index){ this.index = index; } public String getDeleteFlag(){ return DeleteFlag; } public void setDeleteFlag(String DeleteFlag){ this.DeleteFlag = DeleteFlag; .... }
Code:
//XmlData.java public class XmlData { public static Document dom; public List<data> myData = new ArrayList<data>(); public XmlData() { myData = new ArrayList<data>(); parseXmlFile(); parseDocument(); } public void parseXmlFile() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); dom = db.parse("save.xml"); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (SAXException se) { se.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } } public void parseDocument() { Element dataElement = dom.getDocumentElement(); NodeList nl = dataElement.getElementsByTagName("data"); if (nl != null && nl.getLength() > 0) { for (int i = 0; i < nl.getLength(); i++) { Element el = (Element) nl.item(i); data d = getdata(el); myData.add(d); } } } private String getTextValue(Element ele, String tagName) { String textVal = null; NodeList nl = ele.getElementsByTagName(tagName); if (nl != null && nl.getLength() > 0) { Element el = (Element) nl.item(0); textVal = el.getFirstChild().getNodeValue(); } return textVal; } public data getdata(Element dataElement) { String index = getTextValue(dataElement, "Index"); String DeleteFlag = getTextValue(dataElement, "DeleteFlag"); String LizenzName = getTextValue(dataElement, "LizenzName"); String OracleCsi = getTextValue(dataElement, "OracleCsi"); .......... data d = new data( index, DeleteFlag, LizenzName, OracleCsi, ......... return d; } } }
habe mir auch schon jaxb angeschaut, versteh da aba nur bahnhof
gibt es eine moeglichkeit, meinen quelltext so zu erweitern, dass gewuenschter effekt ( deleteflag von 0 auf 1 setzen ) realisiert werden kann?
thx