Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

XML Value ersetzen

Empfohlene Antworten

Hi,

ich möchte eine XML-Datei parsen, ein paar Values anpassen und das ganz danach als String weiterverarbeiten (per HTTP wegschicken..)

parsen kein Problem:


Document dom = XMLdocumentParser.makeDOM(toUploadSTREAM );

String inhalt = XMLdocumentParser.makeXMLfromDOM2(dom );

//jetzt Values/Atribute in dem Document(=xml) ändern

//hier komme ich leider nicht weiter und verfange mich irgendwo in den Childs...-.-

//und weiter verarbeiten..

sendString(inhalt);

in der XML-File sieht das ungefähr so aus:

<document>

  <child1>

    <unterchild value="xy"/>

    <unterchild value="12"/>

    <unterchild value="34"/>

  <child1/>

<document/>

ich möchte jetzt z.b. "value="12"" in "value="ab" ändern...

Problem: das einfache String.replace kann ich schlecht verwenden, da evtl. im weiteren XML die Werte nochmal in einem Text oder so stehen könnten.

Und das wäre außerdem eine unschöne Lösung...

Wäre erstmal schön zu wissen welchen XML Parser du verwendest? Denn mit dem Code kann ich nichts anfangen.

Wieso willst du nicht das bearbeitete XML per HTTP versenden? Denn das würde es dem Empfänger eventuell erleichtern damit umzugehen.

Bearbeitet von Schiller256

import javax.xml.xpath.XPath;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

und seine Freunde...

das Dokument ist ein

import org.w3c.dom.Document;

werds mal über die Nodelist versuchen...

direkt schicken? naja... im moment habe ich die Notlösung mit String.replace()...und so kann ich beim debuggen gleich sehen, was der da verschicken will...:)

ok... funzt soweit... danke...

für Mitleser die's interessiert geht das ungefähr so:


//Factorys bauen 

XPathFactory xpf = XPathFactory.newInstance();

XPath xpath = xpf.newXPath();

//Document einlesen und parsen...

Document dom = XMLdocumentParser.makeDOM(toUploadSTREAM );

//dann über xpath statement sich das Child aussuchen und als Node raus holen

Node parameterNODE = (Node ) xpath.evaluate("<xpath-statement>"]", dom, XPathConstants.NODE );


//dann z.B. das gewünschte Attribut in ein Node ändern...

Node valueNode = parameterNODE.getAttributes().getNamedItem("value" );


//alten wert raus holen

String test=valueNode.getNodeValue()


//neuen wert setzen

valueNode.setNodeValue(newstyles );


//und fertig... diese Änderungen werden gleich in der document-Datei umgesetzt.... man muss also die Nodes nicht wieder in's Document zurück speisen.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.