-
應用 DOM4J 解析節點屬性 public static void main(String[] args) { // 解析books.xml文件 // 創建SAXReader的對象reader SAXReader reader = new SAXReader(); try { // 通過reader對象的read方法加載books.xml文件,獲取docuemnt對象。 Document document = reader.read(new File("src/res/books.xml")); // 通過document對象獲取根節點bookstore Element bookStore = document.getRootElement(); // 通過element對象的elementIterator方法獲取迭代器 Iterator it = bookStore.elementIterator(); // 遍歷迭代器,獲取根節點中的信息(書籍) while (it.hasNext()) { System.out.println("=====開始遍歷某一本書====="); Element book = (Element) it.next(); // 獲取book的屬性名以及 屬性值 List<Attribute> bookAttrs = book.attributes(); for (Attribute attr : bookAttrs) { System.out.println("屬性名:" + attr.getName() + "--屬性值:" + attr.getValue()); }查看全部
-
DOM4J 解析 xml 文件 導入jar包 配置路徑 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 包的引用(以后的項目操作類似)【重點】 操作:項目根目錄下新建lib文件夾——復制—粘帖包——右擊包選擇“構建路徑”——“添加至構建路徑”即可。查看全部
-
JDOM 解析時亂碼的處理 兩種方法可以解決亂碼問題, 1:修改xml文件中的編碼格式, 2:在解析中使用inputstreamreader()指定編碼格式 // 2.創建一個輸入流,將xml文件加載到輸入流中 in = new FileInputStream("src/res/books.xml"); InputStreamReader isr = new InputStreamReader(in, "UTF-8"); // 3.通過saxBuilder的build方法,將輸入流加載到saxBuilder中 Document document = saxBuilder.build(isr); ... Ps:注意先看下xml文件encoding是否修改編碼方式后可以正常顯示,若還是亂碼,則考慮使用代碼的方式將其轉換。 處理中文亂碼步驟: 1)修改xml文件的編碼 2)將InputStream封裝為一個InputStreamReader,并在InputStreamReader的構造函數中指定正確的編碼,然后將InputStreamReader傳入到SAXBuilder中就可以處理中文亂碼了 利用代碼問題解決局部亂碼問題(需要利用InputStreamReader來解決) (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 解析子節點的名和值 System.out.println("屬性名:" + attrName + "----屬性值:" + attrValue); // 對book節點的子節點的節點名以及節點值的遍歷 List<Element> bookChilds = book.getChildren(); for (Element child : bookChilds) { System.out.println("節點名:" + child.getName() + "----節點值:" + child.getValue());查看全部
-
應用 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) + "書======"); ... Ps:foreach類型和List<>配合使用,類型foreach類型取得是<?>里面的類型,表示每一項的元素。查看全部
-
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集合 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();查看全部
-
xml的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 , characters解析完一個屬性,就到endElement,然后又解析一個屬性又到endElement,最后解析完全部屬性,到endElement又到startElement開始下一個節點。 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是String類型節點名稱;attributes是Attributes類型的實例,屬性的意思;查看全部
-
SAX解析XML的速度比DOM的塊, SAX的解析XML的解析器,需要重寫startElement()開始解析的方法and endElemaent()方法 結束解析的方法and characters()方法 重寫charaters()方法時,String(byte[] bytes,int offset,int length)的構造方法進行數組的傳遞 再去除解析時多余空格 if(!value.trim().equals("")){ System.out.println(value); } 使用 SAX 解析 XML 文件的節點名和節點間文本 startElement方法——String qName(第三個參數):節點名 startElement方法——Attributes attributes(第四個參數):節點名的屬性操作 characters方法——char[] ch(第一個參數):xml整個文本內容,所以需截取想要的內容 如圖代碼+以下代碼 public void endElement(String uri, String localName, String qName) throws SAXException { //調用DefaultHandler類的endElement方法 super.endElement(uri, localName, qName); //判斷是否針對一本書已經遍歷結束 if (qName.equals("book")) { System.out.println("======================結束遍歷某一本書的內容================="); } } public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub super.characters(ch, start, length); value = new String(ch, start, length); if (!value.trim().equals("")) { System.out.println("節點值是:" + value); } }查看全部
-
解析xml元素:<br> 1. 重寫DefalutHandler的實現類對象的startElement()方法<br> 2. 在startElement()方法中,先調用DefaultHanlder 的startElement()方法<br> 3. 已知節點的屬性名的情況下<br> if(qname.equals("book")){<br> String value = attributes.getValue("id");<br> }<br> 4.不知節點的屬性名的情況下<br> 獲取屬性長度<br> int length=attributes.getLength();<br> 獲取屬性名和屬性值 for(int i=0;i<length;i++){ System.out.print(attributes.getQname(index)+attributes.getValue(index)); }查看全部
-
DOM:全部讀取先 SAX解析:通過handler處理類逐個分析每個節點,從外到內逐個解析。。一個一個來 startElement, endElement(開始標簽解析,結束標簽解析) 步驟: 1.通過SAXParserFactory的靜態newInstance()方法獲取SAXParserFactory實例factory SAXParserFactory factory = SAXParserFactory.newInstance(); 2.通過SAXParserFactory實例的newSAXParser()方法返回SAXParser實例parser SAXParser parser = factory.newSAXParser(); parser.parse("路徑",handler類型對象);(需創建見3) 3.創建一個類繼承DefaultHandler,重寫其中一些方法進行業務處理并創建這個類的實例handler 創建一個package繼承DefaultHandler(。com那個) startElement() 用于遍歷xml的開始標簽 endElement() 遍歷xml結束標簽 startElement 解析開始 endElement 解析結束 SAX解析xml步驟 1.通過SAXParseFactory的靜態newInstance()方法獲取SAXParserFactory實例factory 2.通過SAXParserFactory實例的newSAXParser()方法返回SAXParser實例parser 3.創建一個類繼承DefaultHandle,重寫方發進行業務已處理創建這個類的實例handle查看全部
-
....查看全部
-
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()查看全部
-
DOM:全部讀取先 SAX解析:通過handler處理類逐個分析每個節點,從外到內逐個解析。。一個一個來 startElement, endElement(開始標簽解析,結束標簽解析) 步驟: 1.通過SAXParserFactory的靜態newInstance()方法獲取SAXParserFactory實例factory SAXParserFactory factory = SAXParserFactory.newInstance(); 2.通過SAXParserFactory實例的newSAXParser()方法返回SAXParser實例parser SAXParser parser = factory.newSAXParser(); parser.parse("路徑",handler類型對象);(需創建見3) 3.創建一個類繼承DefaultHandler,重寫其中一些方法進行業務處理并創建這個類的實例handler 創建一個package繼承DefaultHandler(。com那個) startElement() 用于遍歷xml的開始標簽 endElement() 遍歷xml結束標簽 startElement 解析開始 endElement 解析結束 SAX解析xml步驟 1.通過SAXParseFactory的靜態newInstance()方法獲取SAXParserFactory實例factory 2.通過SAXParserFactory實例的newSAXParser()方法返回SAXParser實例parser 3.創建一個類繼承DefaultHandle,重寫方發進行業務已處理創建這個類的實例handle查看全部
-
SAX方式解析xml步驟查看全部
舉報
0/150
提交
取消