南山做网站的公司,建网站什么网最好,公司网站建设的分类,怎么用照片制作小视频java解析xml文件的两种方式1#xff1a;DOM原理#xff1a;把整个文档加载到内存#xff0c;转化成dom树#xff0c;之后应用程序可以随机的访问dom树的任何数据#xff0c;灵活 快#xff0c;但消耗内存一个简单的xml使用java解析//builder工厂DocumentBuilderFactory f…java解析xml文件的两种方式1DOM原理把整个文档加载到内存转化成dom树之后应用程序可以随机的访问dom树的任何数据灵活 快但消耗内存一个简单的xml使用java解析//builder工厂DocumentBuilderFactory factory DocumentBuilderFactory.newInstance();try{//builderDocumentBuilder builder factory.newDocumentBuilder();//解析xml文档Document doc builder.parse(src/xmls/demo.xml);//根据标签名得到元素NodeList list doc.getElementsByTagName(student);//因为只有一个student 所以获取第一个//Node nodelist.item(0);//element继承自nodeElement student (Element) list.item(0);//第一个元素//姓名Element name (Element) student.getElementsByTagName(姓名).item(0);String nameValuename.getFirstChild().getNodeValue();//年龄Element age (Element) student.getElementsByTagName(age).item(0);String ageValueage.getFirstChild().getNodeValue();System.out.println(ageValue);//性别Element sex (Element) student.getElementsByTagName(sex).item(0);String sexValuesex.getFirstChild().getNodeValue();String attib sex.getAttribute(id);System.out.println(sexValue);System.out.println(attib);}catch(Exception e) {e.printStackTrace();}节点 属性 文本 都可以拿到了复杂的xml也是使用这么几个方法。2. sax只能read 不能edit 相对于DOM方式来说 不会占用太多的内存 对xml文档进行顺序扫描有事件发生输出结果public class SaxDemo extends DefaultHandler {Overridepublic void startDocument() throws SAXException {System.out.println(文档开始。。。);}Overridepublic void endDocument() throws SAXException {System.out.println(文档结束。。。);}Overridepublic void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {System.out.println(元素开始。。qName);}Overridepublic void endElement(String uri, String localName, String qName) throws SAXException {System.out.println(元素结束。。。qName);}/*** 文本结点* param ch* param start* param length* throws SAXException*/Overridepublic void characters(char[] ch, int start, int length) throws SAXException {System.out.println(new String(ch,start,length));}public static void main(String[] args) {SAXParserFactory factory SAXParserFactory.newInstance();SAXParser parser null;try {parser factory.newSAXParser();try {parser.parse(src/xmls/demo.xml,new SaxDemo());} catch (IOException e) {e.printStackTrace();}} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();}}