java使⽤document解析xml⽂件
准备⼯作:
1创建java⼯程
2创建xml⽂档。
完成后看下⾯代码:
import org.w3c.dom.*;
l.parsers.DocumentBuilder;
l.parsers.DocumentBuilderFactory;
public class Main {
public static void main(String[] args) throws Exception {
//创建⼀个⽂档解析器⼯⼚
DocumentBuilderFactory fac= wInstance();
//⽤上⾯的⼯⼚创建⼀个⽂档解析器
DocumentBuilder wDocumentBuilder();
//⽤上⾯的⽂档解析器解析⼀个⽂件放到document对象⾥
Document doc=builder.parse("l");
//获取⽂档中节点名称为Listener的所有节点,并返回⼀个节点集合
NodeList ElementsByTagName("Listener");
System.out.println("⼀共有"+Length()+"个节点");
//遍历整个集合(把所有标签名为Listener的节点⼀个⼀个拿出来
for (int i=0;i&Length();i++){
System.out.println("===========这是第"+(i+1)+"个listener节点的开始:===========");
/
/把集合⾥的每⼀个listener节点分别拿出来
Node node=listenerList.item(i);
//再把上⼀个节点中的所有属性拿出来
NamedNodeMap nodeMap= Attributes();
System.out.println("第"+(i+1)+"个节点⼀共有"+Length()+"个属性");
//遍历所有属性java xml是什么
for(int j=0;j&Length();j++){
Node node1=nodeMap.item(j);
System.out.println("第"+(j+1)+"个属性的名称是"+NodeName());
System.out.println("第"+(j+1)+"个属性的值是"+NodeValue());
}
/
/获取节点的所有⼦节点,注意会把所有换⾏符也解析为⼦节点
NodeList ChildNodes();
//遍历所有⼦节点
for(int k=0;k&Length();k++){
if(childNode.item(k).getNodeType()==Node.ELEMENT_NODE){
//这个过滤条件是只将标签节点保留(换⾏符的节点就删去)
}
System.out.println("===========这是第"+(i+1)+"个节点的结束:===========");
}
}
}
为了⽅便记忆,在这⾥拆解⼀下。我们的⽬的是解析⼀个xml⽂档,所以就需要⼀个⼯具。这个⼯具就叫做DocumentBuilder类的对象,那么这个⼯具怎么来的呢?是从⼯⼚⾥⾯⽣产出来的,那么⼯⼚怎么来的呢?就得先创建⼀个⼯⼚:DocumentBuilderFactory。在本例中解析了xml⽂档中所有名为Listener标签的所有属性。
本⼈其实⾮常渴望研究更深⼊的东西,但现在实在是刚毕业,么办法,所以只能研究研究⼀些场景怎么⽤,怎么解析xml⽂档,⾄于到底内部是如何实现的,希望各位读者有时间⼀定要深究下去,这⾥可能涉及到java的动态代理和⼯⼚模式。
注意:1.<book>红楼梦</book>,当获取到book节点时,其节点名称是book,值是null。因为解析过程中把红楼梦作为book节点的⼦节点解析。所以要想获取红楼梦,就必须在book节点处获取第⼀个⼦节点。也可以⽤book节点获取textContent(获取该节点下及其⼦节点孙节点所有的⽂本节点内容)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论