-
用SAX解析將XML解析的內容及結構形式存入Java對象 SAX解析: 1、獲取一個SAXParserFactory的實例:SAXParserFactory factory = SAXParserFactory.newInstance(); 2、通過factory獲取SAXParser實例:SAXParser parser = factory.newSAXParser(); 3、創建SAXParserHandler對象:SAXParserHandler handler = new SAXParserHandler(); 4、將xml文件和解析方式handler加載到SAXParser實例:parser.parse("books.xml",handler); 解析執行順序:startElement->characters->endElement ArrayList保存對象 ArrayList<Book> BookList=new ArrayList<Book>(); BookList.add(book);book=null;后繼續遍歷 public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException// qName是節點名稱;attributes是節點屬性;查看全部
-
解析XML文檔時,想要保存與其結構形式相同的結構內容時可以通過定義全局變量book與bookList來完成,將XML文件的相關屬性保存到book對象中。 每讀取完一本book之后將其存入bookList中,然后清空book進行下一本書的存儲,最后從bookList中查看所有讀取到的book的內容。 注:通過startElement和endElement方法來標志進行節點本身屬性的開始與結束讀取。 通過startDocument和endDocument方法來標志對XML文件的開始與結束讀取。 通過characters方法來進行對節點本身內容的讀取。查看全部
-
xml的SAX解析并將解析的內容及xml結構形式保存至Java對象中。 SAX解析: 1、獲取一個SAXParserFactory的實例:SAXParserFactory factory = SAXParserFactory.newInstance(); 2、通過factory獲取SAXParser實例:SAXParser parser = factory.newSAXParser(); 3、創建SAXParserHandler對象:SAXParserHandler handler = new SAXParserHandler(); 4、將xml文件和解析方式handler加載到SAXParser實例:parser.parse("books.xml",handler); 解析的時候,是startElement-characters-endElement , characters解析完一個屬性,就到endElement,然后又解析一個屬性又到endElement,最后解析完全部屬性,到endElement又到startElement開始下一個節點。 ArrayList保存對象 ArrayList<Book> BookList=new ArrayList<Book>(); BookList.add(book);book=null;后繼續遍歷 public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException// qName是String類型節點名稱;attributes是Attributes類型的實例,屬性的意思;查看全部
-
sax方式解析 1、獲得SAXParserFactory實例:SAXParserFactory.newInstance() 2、獲得parser實例:SAXParserFactory實例.newSAXParser() 3、獲得handler實例:新建類繼承DefaultHandler,重寫startElement和endElement方法進行業務處理查看全部
-
JDOM解析亂碼處理 1.修改xml第一行的encoding屬性 2.在代碼中處理,應用IO流知識 //創建輸入流,將XML文件加載到輸入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包裝流InputStreamReader進行讀取編碼的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");查看全部
-
java程序 如何獲取xml文件中的內容: 解析xml文件:在java程序中讀取xml文件的過程 解析的目的:獲取節點名、節點值、屬性名、屬性值 解析的方法:DOM(官方)、SAX(官方)、DOM4J、JDOM DOM解析步驟: 1.創建一個DocumentBuilderFactory的對象。用DocumentBuilderFactory.newInstance()方法 2.創建一個DocumentBuilder的對象。用dbf.newDocumentBuilder()方法[try..catch] 3.通過DocumentBuilder對象的parse(String fileName)方法解析xml文件。 4.創建一個Document接收返回值。導入org.w3c.dom包查看全部
-
JDOM的解析<br> 1.獲取SAXBuilder對象<br> 2.將文件加載到SAXBuilder中,并獲取Document對象<br> 3.通過Document對象獲取文件的根節點<br> 4.有了根節點,通過根節點獲取它的孩子節點書的集合<br> 5.循環遍歷孩子節點集合,通過getAttributes方法獲取節點的屬性Attribute集合<br> 6.通過attribute的getName和getValue方法分別獲取屬性的名稱和值 7.獲得book下的節點,通過book節點對象的getChildren()方法獲取子節點的集合 8.再通過子節點的getName和getValue方法獲取節點名和節點的值查看全部
-
將對象 book 設置為全局變量,在 endElement()里面用一個List<Book>全局變量存儲 book ,將每一個book下面的子元素的值用全局變量 value 存儲下來,在 endElement()里面賦值給 value。在 endElement()里面判斷該元素是否是 book 時將存儲的 book 存放到 List<Book> 里面,清除 book 的值,重新賦值。查看全部
-
1.創建JDOM對象 SAXBuider saxbuiler = new SAXBuilder(); 2.將文件加載到輸入流 inputsteam in = new FileInputStream(""); 3.通過saxBuilder的build方法,將輸入流加載道saxbuilder中 Document dom = SaxBuilder.build(in); 4.獲取xml的根節點 Document root = dom.getRootElement(); 5.獲取根節點下子節點的List集合 List<Element> list = root.getChildren();查看全部
-
為了解析節點關系,需要在SAXparserHandler類中重寫endElement()方法: endElement()方法:每個結束標簽都會調用一次該函數。參數:qName--當前解析的標簽的名字。 節點名可直接通過startElement()的qName獲得。 為了獲取節點的值,需要在SAXparserHandler類中重寫characters()方法: characters()方法:參數:char[] ch---節點中的所有內容,可轉化為String類型直接輸出。(可通過String的.trim.equals("")來去掉空格)查看全部
-
xml的SAX解析并將解析的內容及xml結構形式保存至Java對象中。 SAX解析: 1、獲取一個SAXParserFactory的實例:SAXParserFactory factory = SAXParserFactory.newInstance(); 2、通過factory獲取SAXParser實例:SAXParser parser = factory.newSAXParser(); 3、創建SAXParserHandler對象:SAXParserHandler handler = new SAXParserHandler(); 4、將xml文件和解析方式handler加載到SAXParser實例:parser.parse("books.xml",handler); 解析的時候,是startElement-characters-endElement , characters解析完一個屬性,就到endElement,然后又解析一個屬性又到endElement,最后解析完全部屬性,到endElement又到startElement開始下一個節點。 ArrayList保存對象 ArrayList<Book> BookList=new ArrayList<Book>(); BookList.add(book);book=null;后繼續遍歷 public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException// qName是String類型節點名稱;attributes是Attributes類型的實例,屬性的意思;查看全部
-
Element book = (Element) bookList.item(i); book.getAttribute("id"); // 得到 book 中 id 屬性的屬性值查看全部
-
DOM 方式解析 XML DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); // 通過DocumentBuilder對象的parse方法加載books.xml文件到當前項目下 Document document = db.parse("books.xml"); // 通過標簽名獲取節點集合, 獲取所有book節點的集合 NodeList bookList = document.getElementsByTagName("book"); // 遍歷每一個book節點 for(int i = 0; i < bookList.getLength(); i ++){ // 通過 item(i) 方法 獲取 一個book節點,nodeList的索引值從 0 開始 Node book = bookList.item(i); // 獲取 book 節點的所有屬性的集合 NameNodeMap attrs = book.getAttributes(); // 遍歷 book 的屬性 for(int j = 0; j < attrs.getLength(); j ++){ // 通過 item(index) 方法獲取 book 節點的某一屬性 Node attr = attrs.item(j).getNodeName(); // 獲得屬性名稱 System.out.print("屬性名:" + attr.getNodeName()); System.out.println("---屬性值:" + attr.getNodeValue()); } }查看全部
-
在Java中獲取xml文件的內容也稱解析xml文件,解析的目的: 獲取節點名、節點值、屬性名、屬性值。 4種解析方式:DOM、SAX、DOM4J、JDOM查看全部
-
package imocc; import java.util.Iterator; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Xiaomei { public static void main(String[] args) throws Exception { DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder doc=dbf.newDocumentBuilder(); Document doo=doc.parse("books.xml"); NodeList bookList=doo.getElementsByTagName("book"); System.out.println("共有"+bookList.getLength()+"個book節點"); for(int i=0;i<bookList.getLength();i++){查看全部
舉報
0/150
提交
取消