 
 
		
				
				
			AnnaBauer21
Neues Mitglied
- 4
Hallo meine Lieben,
ich habe leider keine Lösung für mein Problem gefunden und mache deshalb ein neues Thema auf.
Testdaten Bsp.:
	
	
	
		
C# Code:
	
	
	
		
	
	
	
		
Java / Android Code:
	
	
	
		
	
	
	
		
Ich hoffe sehr, dass ihr mir helfen könnt!
Liebe Grüße
Anna
				
			ich habe leider keine Lösung für mein Problem gefunden und mache deshalb ein neues Thema auf.
- Ich versuche einen bestehenden Code aus C# in Java / Android umzusetzen.
- Es geht darum eine XML einzulesen und ein neues Element hinzuzufügen.
- In 'AddElement' wird dem übergebenen XElement (System.Xml.Linq.XElement) ein neus Element hinzugefügt.
- Nachdem die 'AddElement' Methode verlassen wurde, ist das neue Element in 'xml' vorhanden und kann mit 'GetElement' ermittelt werden.
- In Java / Android ist es anscheinend notwendig 'Document' zu verwenden um neue 'Element' Objekte zu erstellen.
- In Java / Android habe ich nun das Problem, dass nach verlassen der 'AddElement' Methode das neue Element in 'xml' NICHT vorhanden ist
Testdaten Bsp.:
		Code:
	
	<root>
  <Ebene1>
    <Ebene2>
    <Ebene2>
  </Ebene1>
</root>C# Code:
		Code:
	
	XElement xml = this.LoadXml("testdaten.xml");
this.AddElement(xml, "root/Ebene1/Ebene2", "NewElem", "Value");
XElement newElem = this.GetElement(xml, "root/Ebene1/Ebene2/NewElem")
		Code:
	
	private void AddElement(XElement xml, string relTagPath, string newElemName, string newElemValue = "")
{
  // Ermittelt, ob der angegebene Elementpfad dem obersten XML-Element entspricht
  XElement parentElem;
  if (relTagPath.Equals(xml.Name.ToString()))
  {
      parentElem = xml;
  }
  else
  {
      parentElement = this.GetElement(xml, relTagPath);
  }
  XElement newElem = new XElement(newElemName);
  if (!string.IsNullOrWhiteSpace(newElemValue))
  {
      newElem.SetValue(newElemValue);
  }
  parentElem.Add(newElem);
}Java / Android Code:
		Code:
	
	Element xml = this.LoadXml("testdaten.xml");
this.AddElement(xml, "root/Ebene1/Ebene2", "NewElem", "Value");
Element newElem = this.GetElement(xml, "root/Ebene1/Ebene2/NewElem")
		Code:
	
	private void AddElement(Element xml, string relTagPath, string newElemName, string newElemValue = "")
{
  // Ermittelt, ob der angegebene Elementpfad dem obersten XML-Element entspricht
  Element parentElem;
  if (relTagPath.Equals(xml.Name.ToString()))
  {
      parentElem = xml;
  }
  else
  {
      parentElement = this.GetElement(xml, relTagPath);
  }
  Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
  doc.adoptNode(parentElem);
  Element newElem = doc.createElement(newElemName);
  if (!newElemValue.equals("")
  {
      newElem.SetTextContent(newElemValue);
  }
  parentElem.appendChild(doc.importNode(newElem, true);
}Ich hoffe sehr, dass ihr mir helfen könnt!
Liebe Grüße
Anna
