-
獲取屬性集合08:42查看全部
-
準備工作09:10查看全部
-
JUnit是Java提供的一種進行單元測試的自動化工具。測試方法可以寫在任意類中的任意位置。使用JUnit可以沒有main()入口進行測試。 DOM4J在靈活性和對復雜xml的支持上都要強于DOM DOM4J的應用范圍非常的廣,例如在三大框架的Hibernate中是使用DOM4J的方式解析文件的。 DOM是w3c組織提供的一個官方解析方式,在一定程度上是有所應用的。 當XML文件比較大的時候,會發現DOM4J比較好用 1.JUnit:Java提供的單元測試;@Test注解;采用JUnit不需要程序入口main方法 2.性能測試結果:幾kB的xml文件;建議使用DOM4J解析 DOM-33ms SAX-6ms JDOM-69ms DOM4J-45ms 工程右鍵build path --Add library--JUnit單元測試 --version:JUnit4 DOM:33,SAX:6 JDOM:69;DOM4J:45 DOM 有可能溢出 多使用DOM4J查看全部
-
基礎方法:DOM(平臺無關的官方解析方式)、SAX(基于事件驅動的解析方式) 擴展方法:JDOM、DOM4J(在基礎的方法上擴展出的,只有在java中能夠使用的解析方法) DOM:一次性將整個xml文件加載到內存中,形成DOM樹 優點:形成了樹結構,直觀好理解,代碼更容易編寫 解析過程中樹結構保留在內存中,方便修改 缺點:當xml文件較大時,對內存消耗比較大,容易影響解析性能并造成內存溢出 SAX:逐條語句判斷解析 優點:采用事件驅動模式,對內存消耗比較小 適用于只需要處理xml中數據時 缺點:不易編碼 很難同時訪問同一個xml中的多處不同數據 JDOM:僅使用具體類而不使用接口 API大量使用了Collections類 DOM4J:JDOM的一種智能分支,它合并了許多超出基本XML文檔表示的功能 DOM4J使用接口和抽象基本類方法,是一個優秀的Java XML API 具有性能優異、靈活性好、功能強大和極端易使用的特點 是一個開放源代碼的軟件查看全部
-
SAX解析xml步驟 1.通過SAXParseFactory的靜態newInstance()方法獲取SAXParserFactory實例factory 2.通過SAXParserFactory實例的newSAXParser()方法返回SAXParser實例parser 3.創建一個類繼承DefaultHandle,重寫方發進行業務已處理創建這個類的實例handle查看全部
-
JDOM解析文件 導入jar包 1.創建一個SAXBuilder對象 SAXBuilder saxbuilder=newSAXBuilder(); 2.創建輸入流,將xml文件加載到輸入流中(拋出FileNotFoundException) Inputstream in=new FileInputstream("xxx.xml"); 3.通過SAXBuilder的Build方法將輸入流加載到saxb中獲取dom對象 Document doc = saxbuilder.build(in); 4.通過document對象獲取xml文件的根結點 Element rootElement =doc.getRootElement(); 5.獲取根結點下的子節點的List集合查看全部
-
Element book = (Element) booklist.item(i); String nodeValue = book.getAttribute("id"); System.out.println("第" + (i + 1) + "本書的屬性名:id--屬性值是:" + nodeValue); //獲取book的子節點和子節點的值 NodeList childList = book.getChildNodes(); System.out.println("第"+ (i + 1) +"本書共有" + childList.getLength() + "個子節點。其中非空白文本節點有:"); //遍歷book的子節點 for (int k = 0; k < childList.getLength(); k++) { if (childList.item(k).getNodeType() == Node.ELEMENT_NODE) { System.out.print("第" + (k + 1) + "個子節點的節點名:" + childList.item(k).getNodeName()); //System.out.println(childList.item(i).getFirstChild().getNodeValue()); System.out.println("--節點值:" + childList.item(k).getTextContent()); } }查看全部
-
//通過標簽book獲取book的集合booklist NodeList booklist = document.getElementsByTagName("book"); System.out.println("共有" + booklist.getLength() + "本書。"); //遍歷booklist獲取每一本書的屬性 for (int i = 0; i < booklist.getLength(); i++) { System.out.println("====下面遍歷第" + (i + 1) + "本書的內容===="); //通過items(i)獲得節點book // Node book = booklist.item(i); //通過node.getAttributes()獲得屬性集合 // NamedNodeMap attrs = book.getAttributes(); // System.out.println("第" + (i + 1) + "本書共有" + attrs.getLength() + "屬性"); // for (int j = 0; j < attrs.getLength(); j++) { // System.out.print("第" + (j + 1) + "本書的屬性名:" + attrs.item(j).getNodeName()); // System.out.println("--屬性值:" + attrs.item(j).getNodeValue()); // } //前提知道book的屬性有且只有一個時可以通過屬性名id獲得屬性值,并且需要將booklist.item(i)強制轉換為Element類型 }查看全部
-
//創建DocumentBuilderFactory對象 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { //創建DocumentBuilder對象 DocumentBuilder db = dbf.newDocumentBuilder(); //創建Document來獲取解析xml Document document = db.parse("books.xml"); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }查看全部
-
獲取xml文件內容的 有四種解析方式:DOM SAX DOM4J JDOM DOM、SAX :java 官方方式,不需要下載jar包 DOM4J、JDOM :第三方,需要網上下載jar包 DOM使用步驟: 準備工作 1、創建一個DocumentBuilderFactory的對象 DocumentBuilderFactory dbf = DocumnetBuilderFactory.instance(); 2、創建一個DocumentBuilder的對象 DocumentBuilder db = dbf.newDocumentBuilder(); 3、通過DocumentBuilder對象的parse方法加載xml文件到當前項目 Document document = db.parse("*.xml"); 其中2.3兩步需要try...catch異常查看全部
-
ChildNodes.item(i).getFirstChild().getNOdeValue()和 ChildNodes.item(i).getTextContent()的區別 子節點中還包含其他子節點時,后者可以把子節點的值都顯示出來。 getTextContent()獲取節點中的text內容(即節點值). getNodeType().............有text,element,attr三個 而Element如果要獲取值,必須讀取它的子節點,<name>content</name>認為content是namae的子節點; 兩種方法: getFirstChild().getNodeName();(獲取子節點再獲取值) getTextContent();(獲取content方法)查看全部
-
使用Dom解析xml文件的屬性節點。 在不知道節點屬性的個數和屬性名時: 1、通過document.getElementByTagName("標簽名")獲得所有標簽名的節點,得到一個NodeList集合 2、通過NodeList.getLength()獲得集合長度,遍歷集合 3、Node node = NodeList.item(index)獲得里面的節點 4、通過NamedNodeMap attrs = node.getAttributes()獲取所有屬性集合 5、通過attrs.getLength()遍歷集合,Node attr = atrrs.item(index) 6、attr.getNodeName()獲得屬性名,attr.getNodeValue()獲取屬性值 前提已經知道book節點有且只有1個id屬性,將book節點進行強制類型轉換,轉換成element類型。 1、通過document.getElementByTagName("標簽名")獲得所有標簽名的節點,得到一個NodeList集合 2、通過NodeList.getLength()獲得集合長度,遍歷集合 3、element book=(element)bookList.item(i);//強制轉換為element類型 4、string attrValue = book.getAttribute("id");查看全部
-
獲取xml文件內容的 四種解析方式:DOM SAX DOM4J JDOM DOM使用步驟: 準備工作 1、創建一個DocumentBuilderFactory的對象 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); 2、創建一個DocumentBuilder的對象 DocumentBuilder db=dbf.newDocumentBuilder(); 3、通過DocumentBuilder對象的parser方法加載xml文件到當前項目 Document document = db.parse("books.xml"); JAVA解析XML文件(4種) DOM、SAX :java 官方方式,不需要下載jar包 DOM4J、JDOM :第三方,需要網上下載jar包查看全部
-
不同系統間通信、不同軟件間通信、不同平臺間通信使用xml文件 XML文件用來存儲數據和傳輸數據 XML存儲結構為樹狀 xml聲明:<?xml version="1.0"encoding="utf-8"? >查看全部
-
DOM解析xml中Book節點下的子節點的屬性名和屬性值。 當<book> <name>冰與火之歌</name> </book>中只有name一個子節點的時候可以用System.out.println("節點值是:"+childNodes.item(k).getFirstchild().getNodeValue());或者System.out.println("childNodes.item.getTextContent()"); 當為<name><a>aaaa</a>冰與火之歌</name>中還有個子標簽的時候,看情況等使用,因為用第一個方法會得到空值,原因是Element類型節點解析時會講<name></name>中的文字返回null,所以需要先取得第一個子節點,再去值。查看全部
舉報
0/150
提交
取消