关于XML的详细教学内容:
(XML(可扩展标记语言)是W3C的推荐标准,是一种很像超文本标记语言的标记语言,它的设计宗旨是传输数据,而不是显示数据;它的标签没有被预定义,需要自行定义标签;具有自我描述性。
XML 不是 HTML 的替代,XML 和 HTML 为不同的目的而设计:XML 被设计用来传输和存储数据,其焦点是数据的内容;HTML 被设计用来显示数据,其焦点是数据的外观;HTML 旨在显示信息,而 XML 旨在传输信息。)
1.读取XML
2.写入XML
3.新建XML
4.创建构造XML
创建新的xml文档:
复制代码 1 /构造一个XML解析器 并且创建新的文档/ 2 1 Document document = null; 3 2 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 4 3 try { 5 4 DocumentBuilder builder = factory.newDocumentBuilder(); 6 5 document = builder.newDocument();//创建一个新的XML文件 7 6 //document = builder.parse(fileName);//解析已存在的XML文件 8 7 } catch (ParserConfigurationException e) { 9 8 e.printStackTrace(); 10 9 } 复制代码
将内存中的xml输出到文件上面:
复制代码 1 //将内存中的xml,输出到文件上面 2 Transformer tf = null; 3 TransformerFactory tff = TransformerFactory.newInstance(); 4 try { 5 tf = tff.newTransformer(); 6 tf.transform(new DOMSource(document), new StreamResult("src/test.xml")); 7 8 } catch (TransformerConfigurationException e) { 9 e.printStackTrace(); 10 } catch (TransformerException e) { 11 e.printStackTrace(); 12 } 复制代码
构建xml:
复制代码
1 Element root = document.createElement("root");//创建根目录
2
3 Element student = document.createElement("student");
4
5 student.setAttribute("name", "xiaoming");//设置student 的属性值
6
7 /创建student的子元素/
8 Element id = document.createElement("id");
9 Element sex = document.createElement("sex");
10 Element age = document.createElement("age");
11
12 /设置元素的文本/
13 id.setTextContent("0001");
14 sex.setTextContent("man");
15 age.setTextContent("18");
16
17 /将子元素添加到父元素(student)中/
18 student.appendChild(id);
19 student.appendChild(sex);
20 student.appendChild(age);
21
22 root.appendChild(student);//将元素(节点)student 添加到根目录(root)中去
23 document.appendChild(root);//将根目录添加到文档中去
复制代码
输出结果:
复制代码 1 2 3 4 0001 5 man 6 18 7 8 复制代码
获取XML中的数据
复制代码 1 2 3 0001 4 man 5 18 6 7 8 0002 9 man 10 20 11 12 13 0003 14 female 15 15 16 17 复制代码 对XML进行查找操作
复制代码
1 //获取student中属性name=xiaoming的所有信息
2 NodeList list_st =document.getElementsByTagName("student");
3 /遍历所有student的元素/
4 for(int i=0;i<list_st.getLength();i++)
5 {
6 Node n =list_st.item(i);
7
8 Element student= (Element)n;//必须强转为元素才能获取到设置的属性,节点获取不了属性
9
10 /找出student中属性xiaoming的节点/
11 if(student.getAttribute("name").equals("xiaoming"))
12 {
13 /获取所有标签中的文本信息/
14 String id = student.getElementsByTagName("id").item(0).getTextContent();
15 String sex = student.getElementsByTagName("sex").item(0).getTextContent();
16 String age = student.getElementsByTagName("age").item(0).getTextContent();
17
18 System.out.println("id:"+id);
19 System.out.println("sex:"+sex);
20 System.out.println("age:"+age);
21 /*输出:
22 * id:0001
23 * sex:man
24 * age:18
25 */
26 }
27 }
阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场)