03. december 2003 - 14:20
Der er
2 kommentarer og 1 løsning
Configuration i XML eller tilsvarende?
Hejsa! Jeg har i lang tid kunnet nøjes med java.util.Property som klasse til indlæsning af konfiguration. Det fungerer fint, sålænge konfigurationen har været i ét enkelt niveau. Nu har jeg dog behov for at lave flere niveauer i konfigurationen, og ønsker ikke at skulle bruge et stort antal forskellige filer. Eksempel: [config_1] parameter_1 = value_1 parameter_2 = value_2 parameter_3 = value_3 [config_2] parameter_1 = value_4 parameter_2 = value_5 parameter_3 = value_6 Jeg tænkte, at dette nok kunne gøres i XML: <configs> <config id="1"> <param> <label>parameter_1</label> <value>value_1</value> </param> <param> <label>parameter_2</label> <value>value_2</value> </param> <param> <label>parameter_3</label> <value>value_3</value> </param> </config> <config id="2"> <param> <label>parameter_1</label> <value>value_4</value> </param> <param> <label>parameter_2</label> <value>value_5</value> </param> <param> <label>parameter_3</label> <value>value_6</value> </param> </config> </configs> Jeg har dog ikke arbejdet med XML i java før, så hvordan gør jeg nemmest? Eller er der et andet tool (klasse) til samme formål?? /Crax
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
03. december 2003 - 14:35
#1
Ja der er fuld XML support (både DOM og SAX) indbygget i Java 1.4.x ! Og i tidligere versioner skal man bare downloade f.eks. Xerces og så virker det også fint. Vil du gerne se et eksempel til at læse den konfig fil ?
03. december 2003 - 14:50
#2
Et hurtigt lille parse eksempel: import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class Config { public static void main(String[] args) { readConfig(); } private static void readConfig() { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new File("C:\\config.xml")); NodeList elements = doc.getElementsByTagName("config"); for (int i = 0; i < elements.getLength(); i++) { Node element = elements.item(i); System.out.println("id = " + element.getAttributes().getNamedItem("id").getNodeValue()); NodeList subelements = element.getChildNodes(); for (int j = 0; j < subelements.getLength(); j++) { NodeList subelements2 = subelements.item(j).getChildNodes(); for (int k = 0; k < subelements2.getLength(); k++) { String tag = subelements2.item(k).getNodeName(); if (tag.equals("label")) { System.out.println("label = " + subelements2.item(k).getFirstChild().getNodeValue()); } if (tag.equals("value")) { System.out.println("value = " + subelements2.item(k).getFirstChild().getNodeValue()); } } } } } catch (FactoryConfigurationError e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return; } }