读取xml标签内容的方法是什么样的_读取xml标签内容的方法是什么样的

读取xml标签内容的方法是什么样的_读取xml标签内容的方法是什么样的XML——读取xml文件内容的四种方式读取xml文件内容有四种方式:分别是DOM,JDOM,SAX,DOM4J,具体是什么此处不再赘述&

XML——读取xml文件内容的四种方式   读取xml文件内容有四种方式:分别是DOM,JDOM,SAX,DOM4J,具体是什么此处不再赘述,主要讲如何使用及该选择哪种xml解析方式。   1)DOM4J性能最好,若不考虑可移植性,最好用DOM4J;JDOM和DOM在性能测试时表现不佳,在测试10M文档时内存溢出,在小文件情况下,JDOM和DOM还是值得考虑的,但是DOM仍是一个非常好的选择,DOM实现广泛应用于多种编程语言,它还是许多其它与xml相关的标准的基础,因为它正式获得w3c推荐,所以在某些项目中还是会用到它,例如JavaScript中使用DOM;SAX表现较好,这要依赖于它特定的驱动方式-事件驱动,一个SAX检测即将到来的xml流,但并没有载入到内存(当然xml流被读入时,会有部分文档暂时隐藏在内存中)。   用法:   xml文件:   <?xml version=”1.0″ encoding=”UTF-8″?>   <Result>   <value>   <NO></NO>   <ADDR>北京</ADDR>   </value>   <value>   <NO></NO>   <ADDR>北京海淀</ADDR>   </value>   </Result>   DOM用法:   package com.test;   import java.io.File;   import javax.xml.parsers.*;   import org.w3c.dom.Document;   import org.w3c.dom.NodeList;   /   * DOM读取XML文件内容   * @author Administrator   *   */   public class DOMXml {   public static void main(String[] args) {   try {   File f = new File(“src\com\test\MyXml.xml”);   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();   DocumentBuilder builder = factory.newDocumentBuilder();   Document doc = builder.parse(f);   NodeList nl = doc.getElementsByTagName(“value”);   for(int i = 0;i<nl.getLength();i++){   System.out.println(“CODE:”+doc.getElementsByTagName(“NO”).item(i).getFirstChild().getNodeValue());   System.out.println(“NAME:”+doc.getElementsByTagName(“ADDR”).item(i).getFirstChild().getNodeValue());   }   } catch (Exception e) {   e.printStackTrace();   }   }   }   JDOM用法:   package com.test;   import java.io.File;   import java.util.List;   import org.jdom.*;   import org.jdom.input.*;   public class JDOMXml {   /JDOM读取XML文件内容   * @param args   */   public static void main(String[] args) {   try{   SAXBuilder builder = new SAXBuilder();   Document doc = builder.build(new File(“src\com\test\MyXml.xml”));   Element foo = doc.getRootElement();   List allChilds = foo.getChildren();   for(int i=0;i<allChilds.size();i++){   System.out.println(“CODE:”+allChilds.get(i).getChild(“NO”).getText());   System.out.println(“ADDR:”+allChilds.get(i).getChild(“ADDR”).getText());   }   }catch(Exception e){   e.printStackTrace();   }   }   }   DOM4J用法:   package com.test;   import java.io.File;   import java.util.Iterator;   import org.dom4j.*;   import org.dom4j.io.*;   public class DOM4JXml {   /DOM4J读取文件内容   * @param args   */   public static void main(String[] args) {   try{   File f = new File(“src\com\test\MyXml.xml”);   SAXReader reader = new SAXReader();   Document doc = reader.read(f);   Element root = doc.getRootElement();   Element foo;   for(Iterator<E> i = root.elementIterator(“value”) ; i.hasNext();){   foo = (Element)i.next();   System.out.println(“CODE:”+foo.elementText(“NO”));   System.out.println(“NAME:”+foo.elementText(“ADDR”));   }   }catch(Exception e){   e.printStackTrace();   }   }   }   SAX用法:   package com.test;   import java.util.Stack;   import javax.xml.parsers.SAXParser;   import javax.xml.parsers.SAXParserFactory;   import org.xml.sax.Attributes;   import org.xml.sax.InputSource;   import org.xml.sax.helpers.DefaultHandler;   public class SAXXml extends DefaultHandler {   /   * SAX读取XML文件内容   */   Stack tags = new Stack();   public SAXXml() {   super();   }   public static void main(String[] args) {   long lasting = System.currentTimeMillis();   try{   SAXParserFactory sf = SAXParserFactory.newInstance();   SAXParser sp = sf.newSAXParser();   SAXXml reader = new SAXXml();   sp.parse(new InputSource(“src\com\test\MyXml.xml”), reader);   }catch(Exception e){   e.printStackTrace();   }   System.out.println(“Time:” + (System.currentTimeMillis() – lasting) + “ms”);   }   public void characters(char ch[],int start,int length){   String tag = (String) tags.peek();   if(tag.equals(“NO”)){   System.out.println(“CODE:”+ new String(ch,start,length));   }   if(tag.equals(“ADDR”)){   System.out.println(“NAME:” + new String(ch,start,length));   }   }   public void startElement(String uri,String localName,String qName,Attributes attrs){   tags.push(qName);   }   }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/57700.html

(0)
上一篇 2024年 8月 31日 上午7:32
下一篇 2024年 8月 31日 上午7:39

相关推荐

关注微信