ηλί, ηλί, λαμά σαβαχθανί!?
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!
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.
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();
}
}
}
[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
Lös problemet för en enskild fil
Omvandla lösningen till en metod som tar en File och returnerar/skriver ut resultatet som du vill ha det
Använd din metod för att skriva ut X antal Files
Kom-pa-TI-bilitet
- Igår Nvidia: "Energieffektiva RTX 4060 sparar hundralappar" 35
- Igår MSI Geforce RTX 4060 Ventus 2X OC – bra prestanda vid 1080p men medioker kylare 43
- Igår Noctua släpper monteringsram för "deliddade" Ryzen 7000-processorer 15
- Igår Nvidias nästa arkitektur för Geforce kommer år 2025 58
- 27 / 6 Afox släpper kompakt Geforce RTX 4090 36
- Igår Veckans fråga: Vilket operativsystem föredrar du? 75
- Igår Bilar med smarta inslag ger fler dumma fel 56
- 27 / 6 Telekombranschen: "Smarta glasögon ersätter telefoner inom fem år" 88
- 26 / 6 Lastpass-användare rasar – kan inte logga in 59
- 26 / 6 Inet frågar SweClockers – Vad skulle du vilja förbättra på Inet.se? 53
- Benify-erbjudanden på Samsung-TV [utbruten tråd]1028
- Solfilm till fönster för sommarvärmen. Behöver råd.29
- Diablo IV – den stora tråden2702
- Framtiden för C# och .Net i Sverige46
- Fel post (dödsbo)8
- Bildvisnings program5
- Hjälp angående gammal psu och "nytt" grafikkort0
- Fästingar.1
- PSVR2 - diskussionstråd444
- Kommer flytta till stan och mitt wifi kommer säkert synas av hundratals människor varje dag. Vilken router ska jag köpa och hur ska den ställas in?6
- Säljes LG 27'' UltraGear 27GP950 4K Nano IPS 160 Hz HDMI 2.1
- Säljes Star Wars Jedi AMD kod
- Säljes Trasig Xiaomi Mi Electric Scooter (M365) Svart
- Säljes 5800x3D + x570 Meg Unify + be quiet! Dark Rock Slim
- Säljes AMD ASUS DUAL RX6700XT
- Säljes Dell OptiPlex 7010
- Säljes Datordelar: i5 9600k + 1070 GTX mm.
- Säljes 1080 TI | Vattenblock | 1TB SSD | Apple Watch 4 Stainless | Hörlurar | Mikrofon
- Säljes Intressekoll: Xbox Series S 512Gb samt Switch Oled 64Gb Vit
- Säljes Gamingdator RTX 3090, i9-10900K, 32GB ram
- Nvidia: "Energieffektiva RTX 4060 sparar hundralappar"35
- MSI Geforce RTX 4060 Ventus 2X OC – bra prestanda vid 1080p men medioker kylare43
- Veckans fråga: Vilket operativsystem föredrar du?75
- Bilar med smarta inslag ger fler dumma fel56
- Noctua släpper monteringsram för "deliddade" Ryzen 7000-processorer15
- Nvidias nästa arkitektur för Geforce kommer år 202558
- Microsoft vill strömma Windows från molnet71
- Starfield utvecklas med AMD:s välsignelse145
- Telekombranschen: "Smarta glasögon ersätter telefoner inom fem år"88
- En av tre svenskar använder annonsblockerare79
Externa nyheter
Spelnyheter från FZ
- Alan Wake och CoD: Kallt krig snart på PS Plus, enligt läcka igår
- Red Dead Redemption åldersmärkt igen i Korea – det spekuleras i remaster igår
- Fallout London flyttas för att slippa Starfield-konkurrensen igår
- Minecraft-filmen kan ha hittat sin Steve – Pedro "The Last of Us-Joel" Pascal igår
- Stor Diablo IV-patch släppt, mer XP och ombalanserade klasser igår