-
小技巧:关于 JDOM 使用过程中 JAR 包的引用(以后的项目操作类似)【重点】 操作:项目根目录下新建lib文件夹——复制—粘帖包——右击包选择“构建路径”——“添加至构建路径”即可。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
在 JDOM 中存储 Book 对象 private static ArrayList<Book> booksList = new ArrayList<Book>(); ... // 遍历attrList(针对不清楚book节点下属性的名字及数量) for (Attribute attr : attrList) { // 属性名 String attrName = attr.getName(); // 属性值 String attrValue = attr.getValue(); System.out.println("属性名:" + attrName + "属性值:" + attrValue); if (attrName.equals("id")) { bookEntity.setId(attrValue); } } // 对book节点的子节点的节点名及节点值的遍历 List<Element> bookChilds = book.getChildren(); for (Element child : bookChilds) { System.out.println("节点名:" + child.getName() + "节点值:" + child.getValue()); if (child.getName().equals("name")) { bookEntity.setName(child.getValue()); } else if (child.getName().equals("author")) { bookEntity.setAuthor(child.getValue()); } ...//else if(){}与上面类似 booksList.add(bookEntity); bookEntity = null; syso.booksList.size(); syso.booksList.get(0).getId(); syso.booksList.get(0).getName(); ...查看全部
-
JDOM 解析时乱码的处理 // 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是否修改编码方式后可以正常显示,若还是乱码,则考虑使用代码的方式将其转换。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
应用 JDOM 解析子节点的名和值 System.out.println("属性名:" + attrName + "----属性值:" + attrValue); // 对book节点的子节点的节点名以及节点值的遍历 List<Element> bookChilds = book.getChildren(); for (Element child : bookChilds) { System.out.println("节点名:" + child.getName() + "----节点值:" + child.getValue()); ... 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
应用 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类型取得是<?>里面的类型,表示每一项的元素。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
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(); ... Ps1:小技巧:Alt+向上——代码上移,Alt+向下——代码下移; Ps2:- org.jdom2 Document。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
xml将空白和换行也识别为结点。查看全部
-
遍历获得属性名和属性值。查看全部
-
遍历节点属性查看全部
-
使用 SAX 解析将 XML 的内容和结构存入 JAVA 对象 Ps:只显示有变化的部分 public class SAXParserHandler extends DefaultHandler { String value = null; Book book = null; private ArrayList<Book> bookList = new ArrayList<Book>(); public ArrayList<Book> getBookList() {//【注意:为了让main方法进行调用】 return bookList; } int bookIndex = 0; public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); if (qName.equals("book")) { bookIndex++; //创建一个book对象 book = new Book(); public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); //判断是否针对一本书已经遍历结束 if (qName.equals("book")) { bookList.add(book); book = null;//【注意:每弄完一本书进行清空给下一本书用】 System.out.println("======================结束遍历某一本书的内容================="); } else if (qName.equals("name")) { book.setName(value); } ...//类似上面else if(){} }查看全部
-
SAXParserHandler模版+执行原理顺序 I-3 运行结果: SAX解析开始 解析xml元素开始 文本处理中... 解析xml元素开始 文本处理中... 解析xml元素开始 文本处理中... 解析xml元素结束 文本处理中... 解析xml元素开始 解析xml元素开始 文本处理中... 解析xml元素结束 文本处理中... 解析xml元素结束 文本处理中... 解析xml元素开始 文本处理中... 解析xml元素结束 文本处理中... 解析xml元素结束 文本处理中... 解析xml元素结束 SAX解析结束 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
使用 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); } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
使用 SAX 解析 XML 文件的节点属性 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
SAXParserHandler模版+执行原理顺序 I-2 public static void main(String[] args) { // 获取一个SAXParserFactory的实例 SAXParserFactory factory = SAXParserFactory.newInstance(); // 通过factory获取SAXParser实例 try { SAXParser parser = factory.newSAXParser(); // 创建SAXParserHandler对象 SAXParserHandler handler = new SAXParserHandler(); parser.parse("books.xml", handler); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } Ps:注意try...catch最好不要嵌套,一起并列写。 ----------------------------分割线---------------------------- <?xml version="1.0" encoding="UTF8"?> <bookstore> <book id="1"> <name>imooc</name> <year><a>2013</a>2014</year> <price>89</price> </book> </bookstore> 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
SAXParserHandler模版+执行原理顺序 I-1 public class SAXParserHandler extends DefaultHandler { /** * 用来标识解析开始 */ public void startDocument() throws SAXException { super.startDocument(); System.out.println("SAX解析开始"); } /** * 解析xml元素节点开始 */ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); System.out.println("解析xml元素开始"); } /** * 处理文本内容(获取的是整个XML文本内容) */ public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); System.out.println("文本处理中..."); } /** * 解析xml元素节点结束 */ public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); System.out.println("解析xml元素结束"); } /** * 用来标识解析结束 */ public void endDocument() throws SAXException { super.endDocument(); System.out.println("SAX解析结束"); }查看全部
举报
0/150
提交
取消