Java如何获取xml文件中子节点的属性

来源:互联网 发布:手机excel软件 编辑:程序博客网 时间:2024/05/16 00:49

import java.io.ByteArrayInputStream;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;public class XmlGetValue {public static void  test(String xml) throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();        DocumentBuilder db = factory.newDocumentBuilder();        Document document = db.parse(new ByteArrayInputStream(xml.getBytes()));                 NodeList node = document.getElementsByTagName("学生");        for(int i=0;i<node.getLength();i++){            Element element = (Element)node.item(i);            // 获取属性学号            String content = element.getAttribute("学号");            System.out.println("学号:" + content);                         //获取值            content = element.getElementsByTagName("姓名").item(0).getFirstChild().getNodeValue();            System.out.println("姓名:" + content);                         content = element.getElementsByTagName("性别").item(0).getFirstChild().getNodeValue();            System.out.println("性别:" + content);                         content = element.getElementsByTagName("年龄").item(0).getFirstChild().getNodeValue();            System.out.println("年龄:" + content);            System.out.println();        }}public static void main(String[] args) throws Exception {String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ "<学生名册>"+ "<学生 学号=\"0001214\">"+ "<姓名>张燕</姓名>"+ "<性别>女</性别>"+ "<年龄>22</年龄>"+ "</学生>"+ "<学生 学号=\"0001239\">"+ "<姓名>李继成</姓名>"+ "<性别>男</性别>"+ "<年龄>22</年龄>"+ "</学生>"+ "<学生 学号=\"0001275\">"+ "<姓名>华伟</姓名>"+ "<性别>男</性别>"+ "<年龄>22</年龄>"+ "</学生>"+ "</学生名册>";test(xml);}}

运行结果: