-
在JDOM中存儲對象 1.創建一個新的book類并將其實例化 Book bookEntity = new Book(); 2.添加節點屬性值到book if(attrName.equals("id")){ personEntity.setId(attrValue); } 3.添加子節點屬性值到book if (child.getName().equals("name")) { bookEntity.setName(child.getValue()); } else if (child.getName().equals("author")) { bookEntity.setAuthor(child.getValue()); } else if (child.getName().equals("year")) { bookEntity.setYear(child.getValue()); } else if (child.getName().equals("price")) { bookEntity.setPrice(child.getValue()); } else if (child.getName().equals("language")) { bookEntity.setLanguage(child.getValue()); }查看全部
-
JDOM解析亂碼處理 1.修改xml第一行的encoding屬性 2.在代碼中處理,應用IO流知識 //創建輸入流,將XML文件加載到輸入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包裝流InputStreamReader進行讀取編碼的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");查看全部
-
DOM 解析 獲取節點名、值:getNodeName() getNodeValue() getTextContent() 獲取子節點:getChildNodes() 返回 NodeList 獲取屬性節點:getAttributes() 返回 NamedNodeMap JDOM 解析 獲取節點名、值:getName() getValue() 獲取子節點:getChildren() 返回 List<Element> 獲取屬性節點:getAttributes() 返回 List<Attribute>查看全部
-
---------------------------應用JDOM解析子節點屬性------------------------------ //通過增強for循環進行遍歷子節點集合 for(Element person : personList){ System.out.print("======開始解析第" + (personList.indexOf(person)+1) + "個人======"); //解析person的屬性 List<Attribute> attrList = person.getAttributes();//適用于我們不知道里面有多少屬性 person.getAttributeValue("id");//適用于我們知道子節點屬性的名字直接獲取其屬性值 //遍歷屬性 for(Attribute attr : attrList){ //獲取屬性名 String attrName = attr.getName(); //獲取屬性值 String attrValue = attr.getValue(); } System.out.println("======結束解析第" + personList.indexOf(person)+1 + "個人======"); }查看全部
-
DOM 開始解析前的準備工作 (需要導入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文檔時,想要保存與其結構形式相同的結構內容時可以通過定義全局變量book與bookList來完成,將XML文件的相關屬性保存到book對象中。 每讀取完一本book之后將其存入bookList中,然后清空book進行下一本書的存儲,最后從bookList中查看所有讀取到的book的內容。 注:通過startElement和endElement方法來標志進行節點本身屬性的開始與結束讀取。 通過startDocument和endDocument方法來標志對XML文件的開始與結束讀取。 通過characters方法來進行對節點本身內容的讀取。查看全部
-
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); } }查看全部
-
//開始解析book元素的屬性 if(qName.equals("book")) { //已知booke元素下屬性的名稱,根據屬性名稱獲取屬性值 String value = attributes.getValue("id"); System.out.println("book的屬性值是:"+value); //不知道book元素下屬性的名稱以及個數,如何獲取屬性名及屬性值 int num = attributes.getLength(); for(int i = 0; i < num; i++) { System.out.print("book元素的第"+(i+1)+"個屬性是:"+attributes.getQName(i)); System.out.println("---屬性值是:"+attributes.getValue(i)); } }查看全部
-
1.空白和換行也當做子節點 2.childNodes.item(k)代表個第K個子節點 解析節點名與值: 1、獲取節點集合:元素.getChildNodes(); 2、獲取所有節點名:遍歷節點集合,節點.getNodeName() 3、獲取節點值:節點.getFirstChild().getNodeValue()或節點.getTextContent() 獲取節點之間的值有兩種方法: getFirstChild().getNodeValue();獲取節點下第一個子節點,并取得其中的內容。如果第一個子節點還是一個包含內容的節點,則會獲取到null,如果是文字,則會直接顯示出來 getTextContent();直接獲取節點下的所有內容,無論其是節點還是文本,一律將其中的文本和節點中的文本顯示出來 node還有geinodetype查看全部
-
使用Dom解析xml文件的屬性節點 一、未知節點屬性的個數和屬性名時: 1、通過document.getElementByTagName("book")獲得所有book的節點集合 2、遍歷集合 NodeList.getLength()獲得集合長度 3、Node node = NodeList.item(index)獲取其中的一個節點 4、通過NamedNodeMap attrs = node.getAttributes()獲取所有屬性集合 5、遍歷集合 attrs.getLength()獲得集合長度 6、通過atrrs.item(index)獲取book節點的某一個屬性 7、attr.getNodeName()獲得屬性名,attr.getNodeValue()獲取屬性值 二、已知book節點有且只有1個id屬性 1、通過document.getElementByTagName("book")獲得所有book的節點集合 2、遍歷集合 NodeList.getLength()獲得集合長度 3、element book=(element)NodeList.item(i);//強制轉換為element類型 4、String attrValue = book.getAttribute("id");//獲得屬性值查看全部
-
dom解析xml文件查看全部
-
JDOM和DOM4J對比查看全部
-
SAX解析方式優缺點查看全部
-
DOM解析方式優缺點查看全部
-
四種解析方式的區別查看全部
舉報
0/150
提交
取消