1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
Schlagworte:
  1. AnnaBauer21, 27.11.2018 #1
    AnnaBauer21

    AnnaBauer21 Threadstarter Neuer Benutzer

    Hallo meine Lieben,

    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
     
  2. AnnaBauer21, 27.11.2018 #2
    AnnaBauer21

    AnnaBauer21 Threadstarter Neuer Benutzer

    ludy bedankt sich.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
zugriff auf xml elemente bzw attribute Android App Entwicklung 26.02.2018
Zweiten Spinner hinzufügen Android App Entwicklung 07.01.2018
[OFFEN] If (loginSuccess) dann neue Activity Android App Entwicklung 11.12.2017
Du betrachtest das Thema "org.w3c.dom.Element - Neues Element hinzufügen" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.