Läsa fält från XML och skriva dessa till fil (Java)

Permalänk
Medlem

Läsa fält från XML och skriva dessa till fil (Java)

Någon som har nåt bra tips på hur man åstadkommer följande:

Läsa ett värde från tre specifika fält från ett antal XML-filer som ligger i samma folder och skriva dessa till textfil enligt följande:

Fält1 Fält2 Fält3
Fält1 Fält2 Fält3
Fält1 Fält2 Fält3
Fält1 Fält2 Fält3
Fält1 Fält2 Fält3

Tacksam för hjälp!

Permalänk
Medlem
Skrivet av Fk m:

Någon som har nåt bra tips på hur man åstadkommer följande:

Läsa ett värde från tre specifika fält från ett antal XML-filer som ligger i samma folder och skriva dessa till textfil enligt följande:

Fält1 Fält2 Fält3
Fält1 Fält2 Fält3
Fält1 Fält2 Fält3
Fält1 Fält2 Fält3
Fält1 Fält2 Fält3

Tacksam för hjälp!

Det finns mängder med information om detta på nätet.
Googla lite på "java parse xml" och "java write to file" och återkom om du har problem.
Du lär troligtvis hitta tutorials hur man gör det steg för steg då detta är så pass vanligt.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Att läsa från en enskild fil var inga större problem att få till... Men hur göra för att läsa samtliga xml-filer från en katalog och skriva ut resultatet efter varandra?

import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class XMLReader { public static void main(String argv[]) { try { File file = new File("c:\\testdata.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(file); doc.getDocumentElement().normalize(); System.out.println("Root element " + doc.getDocumentElement().getNodeName()); NodeList nodeLst = doc.getElementsByTagName("test"); System.out.println("Test"); for (int s = 0; s < nodeLst.getLength(); s++) { Node fstNode = nodeLst.item(s); if (fstNode.getNodeType() == Node.ELEMENT_NODE) { Element fstElmnt = (Element) fstNode; NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("fält1"); Element fstNmElmnt = (Element) fstNmElmntLst.item(0); NodeList fstNm = fstNmElmnt.getChildNodes(); System.out.println("Fält 1 : " + ((Node) fstNm.item(0)).getNodeValue()); NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("fält2"); Element lstNmElmnt = (Element) lstNmElmntLst.item(0); NodeList lstNm = lstNmElmnt.getChildNodes(); System.out.println("Fält 2 : " + ((Node) lstNm.item(0)).getNodeValue()); } } } catch (Exception e) { e.printStackTrace(); } } }

Permalänk
Medlem

[QUOTE=Fk m;13497554]Att läsa från en enskild fil var inga större problem att få till... Men hur göra för att läsa samtliga xml-filer från en katalog och skriva ut resultatet efter varandra?[/QUOTE]

Refaktorera

  1. Lös problemet för en enskild fil

  2. Omvandla lösningen till en metod som tar en File och returnerar/skriver ut resultatet som du vill ha det

  3. Använd din metod för att skriva ut X antal Files

Visa signatur

Kom-pa-TI-bilitet