国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion問題解決方法

java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion問題解決方法

2019-12-14 14:58junjie JAVA教程

這篇文章主要介紹了java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion問題解決方法,導致本文問題的原因是缺少一個xerces.jar jar包,需要的朋友可以參考下

讀取本地的xml文件,通過DOM進行解析,DOM解析的特點就是把整個xml文件裝載入內存中,形成一顆DOM樹形結構,樹結構是方便遍歷和和操縱。

DOM解析的特性就是讀取xml文件轉換為 dom樹形結構,通過節點進行遍歷。

這是W3c關于節點的概念

如果xml中包含有大量的數據,由于dom一次性把xml裝入內存中的特性,所以dom不適合于包含大量數據的xml解析。當包含有大量xml的時候,用SAX進行解析比較節省內存。

下面是一個運用DOM進行解析xml文件的例子:

xml文件結構如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
 <book category="cooking">
 <title lang="en">Everyday Italian</title>
 <author>Giada De Laurentiis</author>
 <year>2005</year>
 <price>30.00</price>
 </book>
 <book category="children">
 <title lang="en">Harry Potter</title>
 <author>J K. Rowling</author>
 <year>2005</year>
 <price>29.99</price>
 </book>
 <book category="web">
 <title lang="en">XQuery Kick Start</title>
 <author>James McGovern</author>
 <year>2003</year>
 <price>49.99</price>
 </book>
 <book category="web" cover="paperback">
 <title lang="en">Learning XML</title>
 <author>Erik T. Ray</author>
 <year>2003</year>
 <price>39.95</price>
 </book>
</bookstore>

創建解析xml的類如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package xml.dom;
 
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
 
public class ReadXmlFile {
 
 public static void main(String[] args) {
 
 try{
  
  File xmlFile = new File("src/resource/book.xml");
  
  DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
  
  DocumentBuilder builder = builderFactory.newDocumentBuilder();
  
  Document doc = builder.parse(xmlFile);
  
  doc.getDocumentElement().normalize();
  
  System.out.println("Root element: "+doc.getDocumentElement().getNodeName());
  
  NodeList nList = doc.getElementsByTagName("book");
  
  for(int i = 0 ; i<nList.getLength();i++){
  
  Node node = nList.item(i);
  
  System.out.println("Node name: "+ node.getNodeName());
  Element ele = (Element)node;
  
  System.out.println("----------------------------");
  if(node.getNodeType() == Element.ELEMENT_NODE){
  
  System.out.println("book category: "+ ele.getAttribute("category"));
  
  System.out.println("title name: "+ ele.getElementsByTagName("title").item(0).getTextContent());
  
  System.out.println("author name: "+ele.getElementsByTagName("author").item(0).getTextContent());
  
  System.out.println("year :"+ele.getElementsByTagName("year").item(0).getTextContent());
  
  System.out.println("price : "+ele.getElementsByTagName("price").item(0).getTextContent());
  
  System.out.println("-------------------------");
  
  
  }
  
  
  }
 

解析結果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Root element: bookstore
Node name: book
----------------------------
book category: cooking
title name: Everyday Italian
author name: Giada De Laurentiis
year :2005
price : 30.00
-------------------------
Node name: book
----------------------------
book category: children
title name: Harry Potter
author name: J K. Rowling
year :2005
price : 29.99
-------------------------
Node name: book
----------------------------
book category: web
title name: XQuery Kick Start
author name: James McGovern
year :2003
price : 49.99
-------------------------
Node name: book
----------------------------
book category: web
title name: Learning XML
author name: Erik T. Ray
year :2003
price : 39.95
-------------------------


以上是通過name獲得對應的值,
下面利用循環節點的方式輸出:
循環節點輸出方式的代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package xml.dom;
 
import java.io.File;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
 
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
 
public class ReadXmlFile2 {
 
 public static void main(String[] args) {
 try{
  
  File xmlFile = new File("src/resource/book.xml");
  
  DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
  
  DocumentBuilder builder = builderFactory.newDocumentBuilder();
  
  Document doc = builder.parse(xmlFile);
  
  doc.getDocumentElement().normalize();
  
  System.out.println("Root element: "+doc.getDocumentElement().getNodeName());
  
  
  if(doc.hasChildNodes()){
  
  printNode(doc.getChildNodes());
  }
 }catch(Exception e){
 
 e.printStackTrace();
 
 }
 
 }
 
 public static void printNode(NodeList nodeList){
 System.out.println("------------------------");
 // System.out.println(nodeList.getLength());
 for(int i = 0; i<nodeList.getLength(); i++){
 
 Node node = (Node)nodeList.item(i);
 
 
 if(node.getNodeType() == Node.ELEMENT_NODE){
 
 System.out.println("node name: "+node.getNodeName());
 
 System.out.println("node value: "+node.getTextContent());
 
 if(node.hasAttributes()){
  NamedNodeMap nodeMap = node.getAttributes();
  
  for(int j = 0; j < nodeMap.getLength() ; j++){
  
  Node nodenew = nodeMap.item(j);
  
  System.out.println("node name "+nodenew.getNodeName());
  System.out.println("node value "+nodenew.getNodeValue());
  }
 }
 if(node.hasChildNodes()){
  printNode(node.getChildNodes());
 }
 }
 
 }
 
 }
 
}

輸出結果如下:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
Root element: bookstore
------------------------
node name: bookstore
node value:
 
 Everyday Italian
 Giada De Laurentiis
 2005
 30.00
 
 
 Harry Potter
 J K. Rowling
 2005
 29.99
 
 
 XQuery Kick Start
 James McGovern
 2003
 49.99
 
 
 Learning XML
 Erik T. Ray
 2003
 39.95
 
 
------------------------
node name: book
node value:
 Everyday Italian
 Giada De Laurentiis
 2005
 30.00
 
node name category
node value cooking
------------------------
node name: title
node value: Everyday Italian
node name lang
node value en
------------------------
node name: author
node value: Giada De Laurentiis
------------------------
node name: year
node value: 2005
------------------------
node name: price
node value: 30.00
------------------------
node name: book
node value:
 Harry Potter
 J K. Rowling
 2005
 29.99
 
node name category
node value children
------------------------
node name: title
node value: Harry Potter
node name lang
node value en
------------------------
node name: author
node value: J K. Rowling
------------------------
node name: year
node value: 2005
------------------------
node name: price
node value: 29.99
------------------------
node name: book
node value:
 XQuery Kick Start
 James McGovern
 2003
 49.99
 
node name category
node value web
------------------------
node name: title
node value: XQuery Kick Start
node name lang
node value en
------------------------
node name: author
node value: James McGovern
------------------------
node name: year
node value: 2003
------------------------
node name: price
node value: 49.99
------------------------
node name: book
node value:
 Learning XML
 Erik T. Ray
 2003
 39.95
 
node name category
node value web
node name cover
node value paperback
------------------------
node name: title
node value: Learning XML
node name lang
node value en
------------------------
node name: author
node value: Erik T. Ray
------------------------
node name: year
node value: 2003
------------------------
node name: price
node value: 39.95
------------------------

 

關于節點的問題:

?
1
2
3
4
5
6
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>

對于 book應用:doc.getChildNodes() 得到一個NodeList其中NodeList的長度為9
9個節點分別如下:
title節點
lang節點 
Everyday節點
 author節點
Giada De Laurentiis節點
 year節點
 2005節點
 price節點
 30.00節點

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线欧美亚洲 | 成人超碰在线 | 日本动漫一区 | 成人精品视频 | 国产精品影视 | 亚洲精品久久久久久久久久久 | 久久久国产精品入口麻豆 | 狠狠干网站 | 免费观看视频毛片 | 一区二区免费在线播放 | 黄色网页在线 | 午夜精品久久久久久久久久久久久 | 国产香蕉视频在线播放 | 五月激情综合网 | 日韩精品视频一区二区三区 | 久久午夜影院 | 久久99精品久久久久久国产越南 | 中文字幕一区二区三区四区五区 | 韩国精品 | 91精品综合久久久久久五月天 | 午夜视频在线观看免费视频 | 亚洲综合精品 | 国产精品久久久久国产a级 国产免费久久 | 99伊人网| 国产精品免费在线 | 欧美色欧美亚洲另类七区 | 久久99视频这里只有精品 | 99精品一区二区 | 亚洲国产精品久久人人爱 | 久久久大 | 亚洲国产精品一区久久av篠田 | 一区二区中文 | 日韩电影中文字幕 | 黄视频在线播放 | 99国产视频 | 国产 一区| 成人福利电影在线观看 | 精品无人乱码一区二区三区的优势 | 中国一极毛片 | 精品久久久久久久久久久久久久久久久久久 | 精品久久久久一区二区国产 |