-
SAX方式解析xml步驟 1.通過SAXParserFactory的靜態newInstance()方法獲取一個SAXParserFactory的對象。 2.通過SAXParserFactory對象的newSAXParser()方法返回一個SAXParser類的對象。 3.創建一個類繼承DefaultHandler,重寫其中的一些方法并創建類的實例. 4.通過SAXParser類的Parse(Stringname,df)方法解析xml文件,參數Stringname為路徑名,df為繼承于DefaultHandler類的實例化對象,不需要定義變量存儲返回的類型. SAX是按節點順序進行解析,遇到xml的聲明即開始解析,遇到最后一個節點的尾節點便結束解析,需要用戶自己定義一個類繼承于DefaultHandler類來解析,遇到開始標簽節點便通過startElement開始解析節點,遇到結束標簽節點便通過endElement結束解析,再遇到開始節點繼續通過startElement解析,一直循環直到xml文件最后的結束標簽節點. 5.在繼承于DefaultHandler這個類中需要重寫父類的startElement()和endElement()方法,來進行開始節點與結束節點的解析,再重寫startDocument()方法與endDocument()方法來標識解析的開始與結束.查看全部
-
解析文件節點以及子節點的值 1.先獲取子節點,Node下有方法getChildNodes()來獲取某個節點的子節點的集合,返回NodeList類型. NodeList childNodes=book.getChildNodes()//包含book節點所有的子節點,兩個標簽之間的所有內容都看成是子節點. 2.通過childNodes的getLength()方法返回字點的個數(空格與換行字符看成為一個文本節點,標簽與結束標簽看成一個元素節點) 3.通過NodeList的item(i)獲取指定位置子節點的名稱返回Node類型.再用Node類型的getNodeName()方法就可以獲取節點名 Node childnode=childNodes.item(i); String name=childnode.getNodeName(); 可以通過Node類的getNodeType()來區分文本類型的node以及元素類型的node,看當前Node類型是否與Node."節點類型英文全稱"相同. if(childnode.getNodeType==Node.ELEMENT_NODE) {System.out.println(name)} 4.不能直接通過Node的getNodeValue()來獲取節點的值,因為元素節點的nodeValue的返回值為null而且標簽之間的文本被看做是該標簽的子節點.所以要用Node的getFirstChild()此時獲取的子節點為文本節點,Text節點類型的nodeValue返回值為節點內容,再getNodeValue()。 或者直接用Node的getTextContent()方法直接獲取節點值。 如果該Node節點還存在其他子節點并且有節點值<name><a>廣州大學</a>華軟學院</name>,那么用getFirstChild().getNodeValue()一樣是null,因為獲取的子節點仍然是element類型的 如果用Node的getTextContent(),一樣會把<a>元素節點當成是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為文件擴展名的文件 存儲:樹形結構 每個節點需要一個開始標簽<標簽名>和結束標簽</標簽名>。 節點名稱區分大小寫。 節點的屬性 1、可以寫在節點名稱標簽開始的后半部分<標簽名 屬性="屬性值">。 2、可以作為節點的值寫在兩個標簽中間。<標簽名>節點值</標簽名>。(節點值不用雙引號) 可以不斷拓展子節點來描述父節點包含的內容。 xml在寫正文前,要加一個聲明:<?xml version="1.0" encoding="UTF-8"?>聲明版本與編碼。 xml用于存儲集成信息,能用相同的xml文件將不同的東西聯系起來。查看全部
-
@test不可少 解析xml大文件時,dom會溢出,dom4j不會 dom4j用途非常廣查看全部
-
解析xml文件步驟查看全部
-
當boox.xml文件達到1.5M時,dom4j性能超過dom 性能測試: Perfomance--DOM:691 Perfomance--SAX:277 Perfomance--JDOM:529 Perfomance--DOM4J:401查看全部
-
JDMO與DOM、DOM4J查看全部
-
SAX解析優缺點查看全部
-
DOM優缺點查看全部
-
SAX是JAVA平臺提供的解析方式,是基于事件驅動的解析方式。通過handler方法,有次序的,從外到內的一個個的觸發查看全部
-
DOM和SAX平臺無關的官方解析方式,DOM4J和JDOM只有JAVA能用查看全部
-
DOM解析,一次性加載XML文件并且形成DOM樹,當XML較大的時候,會浪費時間查看全部
-
導入jar包的兩種方式: 1.通過右鍵項目,選擇build Path下的Add External Archives導入系統任意路徑下的jar包。但是這種方式并沒有將jar包真正導入項目中,一旦遷移,則會丟失 2.通過右鍵項目,新建lib文件夾,直接將jar包拷貝到lib文件夾下,然后再通過build Path將jar包導入進來查看全部
-
SAX解析是通過自己創建的Handler處理類,按順序從外到內的依次解析每個節點查看全部
舉報
0/150
提交
取消