-
qname 就是節點名的意思查看全部
-
解析文件節點以及子節點的值 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");查看全部
-
常用的節點類型查看全部
-
JDOM與DOM4J:其實JDOM也是一個開放源代碼的文件 不過DOM4J的性能比JDOM高查看全部
-
SAX優缺點查看全部
-
DOM優缺點查看全部
-
四種解析方式查看全部
-
解析子節點的信息 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()查看全部
-
處理中文亂碼步驟: 1)修改xml文件的編碼 2)將InputStream封裝為一個InputStreamReader,并在InputStreamReader的構造函數中指定正確的編碼,然后將InputStreamReader傳入到SAXBuilder中就可以處理中文亂碼了 利用代碼問題解決局部亂碼問題(需要利用InputStreamReader來解決)(即使不改變xml文件編碼也行) (1)InputStream in=new FIleStream("book.xml"); (2)InputStreamReader isr = new InputStreamReader(in, "utf-8"); (3)Document document = saxBuilder.build(isr);查看全部
-
DOM 解析 獲取節點名、值:getNodeName() getNodeValue() getTextContent() 獲取子節點:getChildNodes() 返回 NodeList 獲取屬性節點:getAttributes() 返回 NamedNodeMap JDOM 解析 獲取節點名、值:getName() getValue() 獲取子節點:getChildren() 返回 List<Element> 獲取屬性節點:getAttributes() 返回 List<Attribute>查看全部
-
應用 JDOM 解析節點屬性 //獲取根節點下的子節點 List<Element> bookList = rootElement.getChildren(); // 繼續進行解析 for (Element book : bookList) { Book bookEntity = new Book(); System.out.println("======開始解析第" + (bookList.indexOf(book) + 1) + "書======"); // 解析book的屬性集合 List<Attribute> attrList = book.getAttributes(); // //知道節點下屬性名稱時,獲取節點值 // book.getAttributeValue("id"); // 遍歷attrList(針對不清楚book節點下屬性的名字及數量) for (Attribute attr : attrList) { // 獲取屬性名 String attrName = attr.getName(); // 獲取屬性值 String attrValue = attr.getValue(); System.out.println("屬性名:" + attrName + "----屬性值:" + attrValue); System.out.println("======結束解析第" + (bookList.indexOf(book) + 1) + "書======");查看全部
-
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集合 List<Element> bookList = rootElement.getChildren(); JDOM 開始解析前的準備工作 public static void main(String[] args) { // 進行對books.xml文件的JDOM解析 // 準備工作 // 1.創建一個SAXBuilder的對象 SAXBuilder saxBuilder = new SAXBuilder(); InputStream in; try { // 2.創建一個輸入流,將xml文件加載到輸入流中 in = new FileInputStream("src/res/books.xml");//放在包下可以直接用“/”來分隔 // 3.通過saxBuilder的build方法,將輸入流加載到saxBuilder中 Document document = saxBuilder.build(in); // 4.通過document對象獲取xml文件的根節點 Element rootElement = document.getRootElement(); // 5.獲取根節點下的子節點的List集合 List<Element> bookList = rootElement.getChildren();查看全部
舉報
0/150
提交
取消