会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132376个问题

package DOM方式;


import java.io.IOException;


import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;


import org.w3c.dom.Document;

import org.w3c.dom.NamedNodeMap;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;





public class TesTDDMParse {

public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {

//(1) 创建一个DocumentBuilderFactory的对象

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

//(2)创建DocumenyBuilder对象

DocumentBuilder db=dbf.newDocumentBuilder();

//(3)通过DocumentBuilder的parse(. . .)方法得到Document对象

Document doc=db.parse("book.xml");

//(4)通过getElementsByTagName(. . .)方法获取到节点的列表

NodeList bookList=doc.getElementsByTagName("book");

System.out.println(bookList.getLength());

//(5)通过for循环遍历,每一个节点

for(int i=0; i<bookList.getLength();i++) {

//(6)得到每一个节点的属性和属性值

Node book=bookList.item(i);

NamedNodeMap attrs=book.getAttributes(); //得到属性的集合

//遍历每一个属性

for(int j=0;j<attrs.getLength();j++){

//得到每一个属性

Node id=attrs.item(j);

System.out.println("属性的名称"+id.getNodeName()+"\t"+id.getNodeValue());

}

}

System.out.println("\n每个节点的名称和节点的值");

//(7)得到每个节点名和节点值

for(int i=0;i<bookList.getLength();i++){

//得到每一个book节点

Node book=bookList.item(i);

NodeList subNode=book.getChildNodes();

//使用for循环遍历每一个book的子节点

for(int j=0;j<subNode.getLength();j++) {

Node childNode=subNode.item(j);

//System.out.println(childNode.getNodeName());

short type=childNode.getNodeType();//获取节点的类型

if(type==childNode.getNodeType()) {

System.out.println("节点的名称:"+childNode.getNodeName()+"\t"+childNode.getTextContent());

}

}

}

}

}



这是books

<?xml version="1.0" encoding="UTF-8"?>

<books>

<book id="1001">

<name>Java开发</name>

<author>张小三</author>

<price>98.5</price>

</book>

<book id="1002">

<name>李四</name>

<author>Java</author>

<price>99.2</price>

</book>

</books>



这是错误

Exception in thread "main" java.io.FileNotFoundException: D:\java\第二阶段\XML技术\books.xml (系统找不到指定的文件。)

at java.base/java.io.FileInputStream.open0(Native Method)

at java.base/java.io.FileInputStream.open(FileInputStream.java:213)

at java.base/java.io.FileInputStream.<init>(FileInputStream.java:155)

at java.base/java.io.FileInputStream.<init>(FileInputStream.java:110)

at java.base/sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:86)

at java.base/sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:184)

at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:654)

at java.xml/com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:860)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)

at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:246)

at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)

at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:178)

at DOM方式.TesTDDMParse.main(TesTDDMParse.java:25)




blob.png



JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 3467楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 3470楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 3472楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 3473楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 3475楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 3476楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 3477楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 3480楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637