亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

代碼運行問題

package com.imooc.dmtest.test;


import java.io.*;


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 DOMTest {


public static void main(String[] args){

// 創建一個DocumentBuilderFactory的對象

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

//創建一個DocumentBuilder對象

try {

DocumentBuilder db=dbf.newDocumentBuilder();

//通過DocumentBuilder對象的parse方法加載bookstore.xml文件到當前項目下

Document document=db.parse("bookstore.xml");

//獲取所有book的節點

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

//通過nodeList中的getLength()方法獲取book的長度

System.out.println("一共有:"+bookList.getLength()+"本書");

//遍歷每一個book節點

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

System.out.println("=========下面開始遍歷第"+(i+1)+"本書的內容=========");

//通過bookList.item()方法獲取每一個節點

Node book=bookList.item(i);

//獲取book節點所有屬性集合

NamedNodeMap attrs=book.getAttributes();

System.out.println("第"+(i+1)+"本書共有"+attrs.getLength()+"個屬性");

//遍歷book的屬性

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

//通過item(i)方法獲取book節點的某一個屬性

Node attr=attrs.item(j);

//獲取屬性名

System.out.print("屬性名:"+attr.getNodeName());

//獲取屬性值

System.out.println("--屬性值:"+attr.getNodeValue());

}

System.out.println("=========結束遍歷第"+(i+1)+"本書的內容=========");

}

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SAXException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

代碼是按照老師講的敲上去的,運行結果如下:

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字節的 UTF-8 序列的字節 1 無效。

at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:687)

at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:557)

at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1753)

at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.peekChar(XMLEntityScanner.java:497)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)

at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)

at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)

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

at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)

at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)

at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:177)

at com.imooc.dmtest.test.DOMTest.main(DOMTest.java:24)

有沒有遇到相同問題,并且解決的同學?

正在回答

2 回答

你books.xml中的內容對不對

0 回復 有任何疑惑可以回復我~
#1

永遠的小菜鳥 提問者

和視頻中的內容一樣,就是名字不一樣!視頻中的是“books.xml”,我的是“bookstore.xml”
2016-12-02 回復 有任何疑惑可以回復我~
#2

慕斯0674022 回復 永遠的小菜鳥 提問者

我電腦上是可以運行的 你試試看修改項目的編碼方式
2016-12-02 回復 有任何疑惑可以回復我~
#3

永遠的小菜鳥 提問者 回復 慕斯0674022

好的,我試試!謝謝啊!
2016-12-02 回復 有任何疑惑可以回復我~
#4

永遠的小菜鳥 提問者 回復 慕斯0674022

朋友你好!前邊你說的“修改項目的編碼方式”是不是把myeclipse中的改為“gbk”或者“utf-8”?我這邊還是不行??!
2016-12-02 回復 有任何疑惑可以回復我~
#5

慕斯0674022 回復 永遠的小菜鳥 提問者

那我就不知道了……把你的代碼拷下來只修改了xml的名稱 就可以運行
2016-12-02 回復 有任何疑惑可以回復我~
#6

永遠的小菜鳥 提問者

非常感謝!
2016-12-03 回復 有任何疑惑可以回復我~
#7

慕斯0674022 回復 永遠的小菜鳥 提問者

搞定了嗎……
2016-12-03 回復 有任何疑惑可以回復我~
查看4條回復

把那個UTF-8改成gbk就可以了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java眼中的XML---文件讀取
  • 參與學習       83198    人
  • 解答問題       447    個

通過Java認識并且創造XML文件,如何應用 Java“解析 XML

進入課程

代碼運行問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號