-
在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
提交
取消