XML格式如下1所示:
<?xmlversion="1.0"encoding="utf-8"?><!--CyPLATESimulatorConfiguration--><CyPLATE><BackgroundChar> </BackgroundChar><ForegroundChar>◆</ForegroundChar><TemplateWidth>170</TemplateWidth><TemplateHeigth>72</TemplateHeigth><WaitTimes>2000</WaitTimes><IntervalTimes>1000</IntervalTimes><FontName>default</FontName><FontSize>8</FontSize></CyPLATE>
实现方法:
DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();factory.setIgnoringElementContentWhitespace(true);factory.setNamespaceAware(false);factory.setValidating(false);try{DocumentBuilderbuilder=factory.newDocumentBuilder();FilexmlFile=newFile("/home/creat/SYS/CYPLATE/CONFIG");Documentdoc=builder.parse(xmlFile);Elementroot=doc.getDocumentElement();BackgroundChar=root.getElementsByTagName("BackgroundChar").item(0).getFirstChild().getNodeValue();//BackgroundCharForegroundChar=root.getElementsByTagName("ForegroundChar").item(0).getFirstChild().getNodeValue();//ForegroundCharTemplateWidth=Integer.valueOf(root.getElementsByTagName("TemplateWidth").item(0).getFirstChild().getNodeValue());//TemplateWidthTemplateHeigth=Integer.valueOf(root.getElementsByTagName("TemplateHeigth").item(0).getFirstChild().getNodeValue());//TemplateHeigthWaitTimes=Integer.valueOf(root.getElementsByTagName("WaitTimes").item(0).getFirstChild().getNodeValue());//WaitTimesIntervalTimes=Integer.valueOf(root.getElementsByTagName("IntervalTimes").item(0).getFirstChild().getNodeValue());//IntervalTimesFontName=root.getElementsByTagName("FontName").item(0).getFirstChild().getNodeValue();//FontNameFontSize=Integer.valueOf(root.getElementsByTagName("FontSize").item(0).getFirstChild().getNodeValue());//FontSize}catch(Exceptione){//TODO:handleexceptione.printStackTrace();}
XML格式如下2:
<?xmlversion="1.0"encoding="GB2312"standalone="no"?><books><bookemail="zhoujunhui"><name>rjzjh</name><price>jjjjjj</price></book></books>
DocumentBuilderFactorydomfac=DocumentBuilderFactory.newInstance();try{DocumentBuilderdomBuilder=domfac.newDocumentBuilder();InputStreamis=newFileInputStream(newFile("D:/test1.xml"));Documentdoc=domBuilder.parse(is);Elementroot=doc.getDocumentElement();NodeListbooks=root.getChildNodes();if(books!=null){for(inti=0;i<books.getLength();i++){Nodebook=books.item(i);if(book.getNodeType()==Node.ELEMENT_NODE)Stringemail(/(7)获取节点的属性值=book.getAttributes().getNamedItem("email").getNodeValue();System.out.println(email);//注意,该节点的属性也是其子节点。它的节点类型也是Node.ELEMENT_NODE//(8)轮循子节点for(Nodenode=book.getFirstChild();node!=null;node=node.getNextSibling()){if(node.getNodeType()==Node.ELEMENT_NODE){if(node.getNodeName().equals("name")){Stringname=node.getNodeValue();Stringname1=node.getFirstChild().getNodeValue();System.out.println(name);System.out.println(name1);}if(node.getNodeName().equals("price")){Stringprice=node.getFirstChild().getNodeValue();System.out.println(price);}}}}}}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}
1)DocumentbuilderFactorydomfactorctorydomfact=DocumentBuilderFactory.newInstance();2)然后从DOM工厂获得DOM分析器Documentbuilderderderderder=domfac.newDocumentBuilder();3)将要分析的XML文档转换为输入流,DOM解析器分析Inputstreamis=newFileInputStream(test1.xml");(4)分析XML文档的输入流,得到DocumentDocumentdoccoc=dombuilder.parse(is);(5)得到XML文档的根节点Elementrotot=doc.getDocumentElement();(6)得到节点的子节点Nodelistbooks=root.getChildNodes();