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 tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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; } }
26. december 2003 - 16:52
#3
OK ?
Kurser inden for grundlæggende programmering