Java:DocumentBuilderFactory调用XML的方法实例
2023-06-13 09:14:49 时间
首先得到:得到DOM解析器的工厂实例 DocumentBuilderFactorydomfac=DocumentBuilderFactory.newInstance();
然后从DOM工厂获得DOM解析器
DocumentBuilderdombuilder=domfac.newDocumentBuilder();
)把要解析的XML文档转化为输入流,以便DOM解析器解析它
InputStreamis=new FileInputStream("test1.xml");
(4)解析XML文档的输入流,得到一个Document
Documentdoc=dombuilder.parse(is);
(5)得到XML文档的根节点
Elementroot=doc.getDocumentElement();
(6)得到节点的子节点
NodeListbooks=root.getChildNodes();
packagecom.st.demo;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStream;
importjavax.xml.parsers.DocumentBuilder;
importjavax.xml.parsers.DocumentBuilderFactory;
importorg.w3c.dom.Document;
importorg.w3c.dom.Element;
importorg.w3c.dom.Node;
importorg.w3c.dom.NodeList;
publicclassXmlReader{
publicstaticvoidmain(String[]args){
XmlReaderreader=newXmlReader();
}
publicXmlReader(){
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){
//(7)取得节点的属性值
Stringemail=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-generatedcatchblock
e.printStackTrace();
}
}
}
相关文章
- java除法保留两位小数_JAVA除法保留小数点后两位的两种方法
- java判断一个对象是否为空_Java中判断对象是否为空的方法的详解
- 反应java程序并行机制的特点_Java语言具有许多优点和特点,下列选项中能反映Java程序并行机制特点的是()。…[通俗易懂]
- java 论坛_5 个最好用的 Java 开源论坛系统
- java语言的平台无关性是指什么,《深入Java虚拟机》学习笔记二:平台无关性
- java获取服务器路径_JAVA获取服务器路径的方法「建议收藏」
- java递归和迭代_Java中的迭代与递归
- 【说站】java静态方法和实例方法的区别
- Java|JavaScript 模拟钓鱼网站实例一[通俗易懂]
- java的栈内存和堆内存_Java本地方法栈
- Java 8 的 java.util.function.* POJO 的反射新方法
- Java基础之多线程实例详解编程语言
- 深入Java:利用API快速创建MySQL表(java创建mysql表)
- Linux平台上Java新版本发布(linux发布java)
- 构建Java应用程序中Redis集群的方法(java连redis集群)
- Java应用在Linux上乱码的原因及解决方法(java linux乱码)
- java调用Oracle存储过程的方法实例
- Java遍历Properties所有元素的方法实例
- java中的Integer的toBinaryString()方法实例
- java文件操作代码片断实例实现统计文件中字母出现的个数功能
- Java方法的可变参数类型实例分析