Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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...

Geschrieben (bearbeitet)

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
Geschrieben

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...:)

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...