第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

有把老師最后的那個聯(lián)系做了的嗎?

有把老師最后的那個聯(lián)系做了的嗎?

正在回答

4 回答

在3-4 中你會看到用SAX將XML文件存儲在Book類中......那個比較容易理解

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

網(wǎng)絡小曦 提問者

非常感謝!
2015-09-17 回復 有任何疑惑可以回復我~

前提是我們不知道xml中的那些內(nèi)容啊,要是所有屬性都知道了,那叫我們解析xml文件的內(nèi)容就沒有意義了


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

//勉強寫出來了,大家湊合看

package com.lianxi.baochushujujiegou;


import java.io.IOException;

import java.io.ObjectInputStream.GetField;


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


public static void main(String[] args) {

book book1 = new book();

book book2 = new book();

//從 XML 文檔獲取生成 DOM 對象樹的解析器

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();//newInstance()是一個靜態(tài)方法,所以可以不創(chuàng)建對象就可以直接只用

try {

//使用當前配置的參數(shù)創(chuàng)建一個新的 DocumentBuilder 實例。

DocumentBuilder db = dbf.newDocumentBuilder();

/*

* DocumentBuilder的定義:定義 API, 使其從 XML 文檔獲取 DOM 文檔實例。使用此類,

* 應用程序員可以從 XML 獲取一個 Document。

此類的實例可以從 DocumentBuilderFactory.newDocumentBuilder() 方法獲取。

獲取此類的實例之后,將可以從各種輸入源解析 XML。

這些輸入源有 InputStreams、Files、URL 和 SAX InputSources。

* */

try {

//創(chuàng)建i,j,k,作為循環(huán)的變量,為了后邊方便保存到book的對象中

int i = 0;

int j = 0;

int k = 0;

int flag = 0;//判斷正在讀第幾本書

//創(chuàng)建一個XML文件的根(Document 接口表示整個 HTML 或 XML 文檔。從概念上講,它是文檔樹的根,并提供對文檔數(shù)據(jù)的基本訪問。)

Document docunment = db.parse("D:\\javaWorkHome\\XML(UTF-8)\\src\\books.xml");

//獲得標簽名為book的節(jié)點的集合,并打印

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

System.out.println("獲取到了"+bookList.getLength()+"本書");

//遍歷節(jié)點,開始訪問節(jié)點內(nèi)的元素

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

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

System.out.println("============遍歷開始============");

//獲取名為book的單個節(jié)點

Node book = bookList.item(i);

//獲取該節(jié)點的所有屬性圖 ? 屬性指的是標簽<>中的內(nèi)容,是對標簽的說明解釋

NamedNodeMap attrs = book.getAttributes();

//遍歷book的屬性

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

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

//獲取book節(jié)點上的某一個屬性

Node attr = attrs.item(j);

//輸出屬性名和屬性值

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

System.out.println(",屬性值為"+ attr.getNodeValue());

}

//解析book節(jié)點的子節(jié)點

NodeList childNodes = book.getChildNodes();

System.out.println("第"+(i+1)+"本書共有"+childNodes.getLength()

+"個子節(jié)點");//子節(jié)點包括<>標簽和標簽之間的空白和換行

for(k=0; k<childNodes.getLength(); k++) {

//區(qū)分出text類型的node以及element類型node

if(childNodes.item(k).getNodeType() == Node.ELEMENT_NODE) {

System.out.print("第"+k+"個元素,"+childNodes.item(k).getNodeName()+":");

System.out.println(childNodes.item(k).getFirstChild().getNodeValue());

}

}

System.out.println("============遍歷結(jié)束============");

//將從XML中讀取的文件放在對象中

switch (flag) {

case 0:

book1.setName(childNodes.item(1).getFirstChild().getNodeValue());

book1.setAuthor(childNodes.item(3).getFirstChild().getNodeValue());

book1.setYear(Integer.parseInt(childNodes.item(5).getFirstChild().getNodeValue()) );

book1.setPrice(Double.parseDouble(childNodes.item(7).getFirstChild().getNodeValue()));

break;


case 1:

book2.setName(childNodes.item(1).getFirstChild().getNodeValue());

book2.setLanguage(childNodes.item(7).getFirstChild().getNodeValue());

book2.setYear(Integer.parseInt(childNodes.item(3).getFirstChild().getNodeValue()) );

book2.setPrice(Double.parseDouble(childNodes.item(5).getFirstChild().getNodeValue()));

break;

}

}

} catch (SAXException e) {

// TODO 自動生成的 catch 塊

e.printStackTrace();

} catch (IOException e) {

// TODO 自動生成的 catch 塊

e.printStackTrace();

}

} catch (ParserConfigurationException e) {

// TODO 自動生成的 catch 塊

e.printStackTrace();

}//newDocumentBuilder()是一個抽象方法

System.out.println(book1.getYear());

System.out.println(book1.getAuthor());

System.out.println(book1.getLanguage());

System.out.println(book1.getPrice());

System.out.println(book1.getYear());

System.out.println(book2.getYear());

System.out.println(book2.getAuthor());

System.out.println(book2.getLanguage());

System.out.println(book2.getPrice());

System.out.println(book2.getYear());

}


}



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

創(chuàng)建book類,應該包含XML文件中所有的屬性,然后每讀到一本書的時候就創(chuàng)建一個book對象,并將其中的屬性保存對相對應的對象屬性中。然后將book對象最為集合保存起來。

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

CyberLiu

這樣子寫沒什么難度,我想的是不知道book的屬性,不知道有沒有name price 之類的,獲取一個屬性之后就傳給List集合中存儲的book相應的屬性,最后統(tǒng)一輸出。也就是不管我在xml文件中定義了多少個子節(jié)點,不用提前在Book類中事先定義相應的屬性,就可以得到結(jié)果。不過沒什么思路。
2015-09-25 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

有把老師最后的那個聯(lián)系做了的嗎?

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

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號