-
解析子节点的信息 Iterator itt = book.elementIterator(); while(itt.hasNext()){ Element bookchild = (Element)itt.next(); bookchild.getName(); bookchild.getStringValue(); } 获取子节点的节点值时用getStringValue()的方法。查看全部
-
DOM4J 解析 xml 文件 1、创建一个 SAXReader 对象 SAXReader saxReader = new SAXReader(); 2、将 xml 文件加载到 SAXReader 中,并获取 document 对象 Document document = saxReader.read(new file("src/res/book.xml")); 3、通过 getRootElement() 获取根节点元素 Element employeeRoot = document.getRootElement(); 4、通过 elementIterator() 获取子节点元素,返回 Iterator 返回迭代器 Iterator eles = employeeRoot.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解析乱码处理 1.修改xml第一行的encoding属性 2.在代码中处理,应用IO流知识 //创建输入流,将XML文件加载到输入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包装流InputStreamReader进行读取编码的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");查看全部
-
在jDOM中无论是什么样的节点他都有一个getChildren的方法 JDOM 解析 获取节点名、值:getName() getValue() 获取子节点:getChildren() 返回 List<Element> 获取属性节点:getAttributes() 返回 List<Attribute> DOM 解析 获取节点名、值:getNodeName() getNodeValue() getTextContent() 获取子节点:getChildNodes() 返回 NodeList 获取属性节点:getAttributes() 返回 NamedNodeMap查看全部
-
JDOM解析节点属性 1、使用 foreach 遍历子元素节点时,获取第几本使用 indexOf + 1(原因:indexOf从0开始) for(Element book : booklist){ booklist.indexOf(book)+1; } 2、JDOM中的Element得到的Attribute的getValue都是有实际值的文本,getValue不保存空格换行等组成的文本查看全部
-
JDOM解析文件 需要jdom-2.0.5.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> personList = rootEle.getChildren();查看全部
-
解析的时候,是startElement-characters-endElement , characters解析完一个属性,就到endElement,然后又解析一个属性又到endElement,最后解析完全部属性,到endElement又到startElement开始下一个节点。 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()方法时,读取节点值(去除空的节点值) if(!value.trim().equals("")){ System.out.println(value); } 每次遇到标签调用characters方法的时候它的字符数组ch实际上就是我们整个的book xml文档的内容。查看全部
-
handler开始解析 走到每一个节点都调用startElement(); 情况1. 已知节点的属性名和属性个数 -> attributes。getValue("属性名"); 情况2. 不知道节点的属性名和属性个数 -> 遍历到attributes.getLength(); -> 属性名 : attributes.getQname() 属性值: attributes.getValue("第几个属性"); 每走到一个开始标签他都会调用一个startElement方法。相同,每遍历一个结束标签他也会调用一个endElement方法。查看全部
-
DOM解析原理: 先把XML文件整个加载到内存中,在逐个解析。 SAX解析原理: 通过自己创建的Handler类,去逐个分析遇到的每一个节点;(节点分析是从最外层向里层逐个开始) startElement方法用来遍历xml文件的开始标签。endElement方法用来遍历xml文件的结束标签。startDocument方法用来标识解析开始。endDocument用来标识解析结束。 SAX解析xml步骤 1.通过SAXParseFactory的静态newInstance()方法获取SAXParserFactory实例factory 2.通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser 3.创建一个类继承DefaultHandle,重写方法进行业务处理并创建这个类的实例handle查看全部
-
常用节点类型。 Element(NodeType:1;NodeName:元素名称;NodeValue:null) Attr(NodeType:2;NodeName:属性名称;NodeValue:属性值) Text(NodeType:3;NodeName:#text;NodeValue:节点内容) 1.getFirstChild.getNodeValue():该节点下第一子节点的值 2.getTextContent() :该节点下包括后代节点里的文本内容 NodeList childNodes = book.getChildNodes();获取子节点 空白和换行符也算作一个子节点~~~ ChildNodes.item(i).getFirstChild().getNOdeValue()和 ChildNodes.item(i).getTextContent()的区别 子节点中还包含其他子节点时,后者可以把子节点的值都显示出来。 getTextContent()获取节点值和所有子节点. getNodeType().............有text,element,attr三个 而Element如果要获取值,必须读取它的子节点,<name>content</name>认为content是namae的子节点; 两种方法: getFirstChild().getNodeName();(获取子节点再获取值) getTextContent();(获取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使用步骤: 准备工作 1、创建一个DocumentBuilderFactory的对象 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); 2、创建一个DocumentBuilder的对象 DocumentBuilder db=dbf.newDocumentBuilder(); 3、通过DocumentBuilder对象的parser方法加载xml文件到当前项目 Document document = db.parse("books.xml"); DocumentBuilder对象的parse(String fileName)方法返回的是一个Document类型的返回值,此处注意Document类型为org.w3c.dom包中的类型。 AVA解析XML文件(4种) DOM、SAX :java 官方方式,不需要下载jar包 DOM4J、JDOM :第三方,需要网上下载jar包查看全部
-
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()查看全部
-
---------------------------应用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.print("属性名:" + ); } System.out.println("======结束解析第" + personList.indexOf(person)+1 + "个人======"); }查看全部
举报
0/150
提交
取消