-
獲取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");查看全部
-
1.xml(Extensible Markup Language)可擴展標記語言的主要作用: 1)主要是實習不同功能直接的連接(比如訂票與 支付) 2)不同系統之間的連接 3)數據共享 2.一種定義文檔格式的語言 語法結構: 1)declaration(聲明) <? ?> <? xml version="1.0" encoding="UTF-8"?> 2)Tag(標記)<></> <username> 內容</username> 3)Attribute(屬性) <username sex="male"></username> sex="male"即為屬性 也可以把屬性改為子元素 <username> 張三 <sex>male</sex> </username> 4)注釋 <!-- --> eg:<!--這是一個注釋的例子-->查看全部
-
1.解析子節點,book標簽之間的所有內容都看成是子節點 NodeList childNodes=book.getChildNodes() 2.遍歷childNodes獲取每個節點的節點名和節點值 childNodes的getLength()方法返回節點的個數(空格與換行字符看成為一個文本節點,標簽與結束標簽看成一個元素節點) 3.通過NodeList的item()獲取子節點屬性 Node childnode=childNodes.item(i); 4.用Node類型的getNodeName()方法就可以獲取節點名 String name=childnode.getNodeName(); 通過Node類的getNodeType()來區分text類型的node以及elment類型的node if(childnode.getNodeType==Node.ELEMENT_NODE) {System.out.println(name)} 4.獲取了element類型節點的節點值 String value=childnode.getFirstChild().getNodeValue(); 或String value=childnode.getTextContent() 1.nodeValue的返回值為null,而且標簽之間的文本被看做是該標簽的子節點。因此用Node的getFirstChild()此時獲取的子節點屬性,再getNodeValue()獲取該值,或者用getTextContent()直接獲取節點值 2.getFirstChild()與getTextContent()區別 例如:<name><a>aa</a>老人與海</name>//該節點還存在其他子節點并且有節點值 則用getFirstChild().getNodeValue()時,返回:null,因為獲取的子節點仍然是element類型的; 用Node的getTextContent(),返回:aa老人與海查看全部
-
常用的節點類型查看全部
-
如果不知道節點的屬性個數以及屬性名,則采用for循環 若知道可以使用Element對象查看全部
-
DOM方式解析xml查看全部
-
1.xml(Extensible Markup Language)可擴展標記語言的主要作用: 1)主要是實習不同功能直接的連接(比如訂票與 支付) 2)不同系統之間的連接 3)數據共享 2.一種定義文檔格式的語言 語法結構: 1)declaration(聲明) <? ?> <? xml version="1.0" encoding="UTF-8"?> 2)Tag(標記)<></> <username> 內容</username> 3)Attribute(屬性) <username sex="male"></username> sex="male"即為屬性 也可以把屬性改為子元素 <username> 張三 <sex>male</sex> </username> 4)注釋 <!-- --> eg:<!--這是一個注釋的例子-->查看全部
-
xml應用于不同平臺系統程序之間的信息交流查看全部
-
1.xml(Extensible Markup Language)可擴展標記語言的主要作用: 1)主要是實習不同功能直接的連接(比如訂票與 支付) 2)不同系統之間的連接 3)數據共享 2.一種定義文檔格式的語言 語法結構: 1)declaration(聲明) <? ?> <? xml version="1.0" encoding="UTF-8"?> 2)Tag(標記)<></> <username> 內容</username> 3)Attribute(屬性) <username sex="male"></username> sex="male"即為屬性 也可以把屬性改為子元素 <username> 張三 <sex>male</sex> </username> 4)注釋 <!-- --> eg:<!--這是一個注釋的例子-->查看全部
-
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 具有性能優異、靈活性好、功能強大和極端易使用的特點 是一個開放源代碼的軟件查看全部
-
解析子節點的信息 Iterator itt = book.elementIterator(); while(itt.hasNext()){ Element bookchild = (Element)itt.next(); bookchild.getName(); bookchild.getStringValue(); }查看全部
-
DOM4J 解析 xml 文件 1、創建一個 SAXReader 對象 SAXReader saxReader = new SAXReader(); 2、將 xml 文件加載到 SAXReader 中,并獲取 document 對象 Document document = saxReader.read(fileName); 3、通過 getRootElement() 獲取根節點元素 Element employeeRoot = document.getRootElement(); 4、通過 elementIterator() 獲取子節點元素,返回 Iterator 返回迭代器 Iterator eles = eleRoot.elementIterator(); 5、通過 while 遍歷迭代器 while(eles.hasNest()){ Element ele = (Element)eles.next();} 6、獲取屬性節點類似 JDOM 解析 List<Attribute> attrs = ele.attributes(); 7、獲取元素節點名、值 ele.getName() ele.getStringValue()/ele.getText() 8、獲取屬性節點名、值 ele.getName() ele.geValue()查看全部
-
JDOM使用過程中JAR包的引用 我們的項目中直接配置build path指定的jar包如果是在我們PC的硬盤某個路徑,那么在日后導出項目時候,項目中是沒有jar包的。 我們只能在我們的項目下建立一個lib文件夾將所需jar包復制進去,再進行build path的配置即可。查看全部
-
在 JDOM 中存儲 Book 對象 private static ArrayList<Book> booksList = new ArrayList<Book>(); ... // 遍歷attrList(針對不清楚book節點下屬性的名字及數量) for (Attribute attr : attrList) { // 屬性名 String attrName = attr.getName(); // 屬性值 String attrValue = attr.getValue(); System.out.println("屬性名:" + attrName + "屬性值:" + attrValue); if (attrName.equals("id")) { bookEntity.setId(attrValue); } } // 對book節點的子節點的節點名及節點值的遍歷 List<Element> bookChilds = book.getChildren(); for (Element child : bookChilds) { System.out.println("節點名:" + child.getName() + "節點值:" + child.getValue()); if (child.getName().equals("name")) { bookEntity.setName(child.getValue()); } else if (child.getName().equals("author")) { bookEntity.setAuthor(child.getValue()); } ...//else if(){}與上面類似 booksList.add(bookEntity); bookEntity = null; syso.booksList.size(); syso.booksList.get(0).getId(); syso.booksList.get(0).getName(); ...查看全部
舉報
0/150
提交
取消