-
常用節點類型查看全部
-
1. DocumentBuilderFactory bdy = DocumentBuilderFactory.newInstance();<br><br> 2.DocumentBuilder bd = bdy.newDocumentBuilder();<br> parse方法解析xml文件,并加裝到當前目錄下<br> 3.Document document = bd.parse("book.xml");<br> 4.NodeList books = document.getElementsByTagName("book");<br> 獲取節點<br> 5.Node book = books.item(i);<br> 獲取節點的屬性集合<br> 6.NamedNodeMap attrs = book.getAttributes();<br><br> 獲取單個屬性<br><br> Node attr = attrs.item(j);<br><br> 屬性名:attr.getNodeName();<br><br> 屬性值:attr.getNodeValue();<br><br> <br><br> 獲取子節點集合<br><br> 7.NodeList childnode = book.getChildNodes();<br><br> 獲取子節點<br> Node child = childnode.item(k);<br><br> 區分TEXT類型和ELEMENT_NODE類型; child.getNodeType == Node.ELEMENT_NODE; 子節點屬性名:child.getNodeName();<br><br> 子節點的屬性值:<br><br> 1.子節點下沒有子節點,則用:<br><br> child.getFirstChild().getNodeValue();<br> 2.子節點下還有其他子節點,獲取子節點的值和它的子節點的值,則用:<br> child.getTextContent();查看全部
-
在java程序中,讀取xml文件的過程也稱為解析xml文件查看全部
-
SAX方式解析xml步驟查看全部
-
節點類型查看全部
-
已知屬性名稱查看全部
-
導入xml查看全部
-
解析文件節點以及子節點的值 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文件內容的 四種解析方式: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");查看全部
-
用DOM方式解析xml:①通過DocumentBuilderFactory對象的newInstance()方法獲取DocumentBuilderFactory對象的實例 ②通過DocumentBuilderFactory實例對象的newDocumentBuilder()方法獲取DocumentBuilder實例 ③通過DocumentBuilder實例的parse()方法解析XML文件,返回的是Document對象 代碼演示: DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=dbf.newDocumentBuilder(); Document document=db.parse(”book.xml”);查看全部
-
*********<br> 解析子節點的信息<br> Iterator itt = book.elementIterator();<br> while(itt.hasNext()){<br> Element bookchild = (Element)itt.next();<br> bookchild.getName();<br> bookchild.getStringValue();<br> }查看全部
-
兩種方法可以解決亂碼問題: 1.修改xml第一行的encoding屬性 2.在代碼中處理,應用IO流知識 //創建輸入流,將XML文件加載到輸入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包裝流InputStreamReader進行讀取編碼的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");查看全部
-
使用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是節點屬性;查看全部
-
1.JUnit:Java提供的單元測試;@Test注解;采用JUnit不需要程序入口main方法 工程右鍵build path --Add library--JUnit單元測試 --version:JUnit4 2.性能測試結果:幾kB的xml文件;建議使用DOM4J解析 DOM-33ms SAX-6ms JDOM-69ms DOM4J-45ms 較大的xml文件DOM有可能溢出 DOM4J的性能強、應用范圍非常的廣,建議使用DOM4J查看全部
舉報
0/150
提交
取消