java解析XML
来源:互联网 发布:网络直播问题 编辑:程序博客网 时间:2024/06/08 07:04
三种方法的介绍:
http://www.ibm.com/developerworks/cn/xml/dm-1208gub/index.html
XPATH参考:
http://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
http://blog.csdn.net/jefferxun1/article/details/7805062
SAX参考:
1.一些概念:http://baike.baidu.com/view/4180507.htm
2.例子:http://blog.csdn.net/redarmy_chen/article/details/12951649
3.例子:http://www.cnblogs.com/avenwu/archive/2012/01/20/2327749.html
SAX的例子:
private static class ServerConfigHandler extends DefaultHandler{private String serverId;public String getServerId(){return serverId;}@Overridepublic void startDocument()throws SAXException {System.out.println("start parsing document...");}@Overridepublic void endDocument()throws SAXException {System.out.println("End");}//private boolean title=false;@Overridepublic void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException{System.out.println("start element "+qName);if(atts!=null){System.out.println("attribute.description:"+atts.getValue("description"));}}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException{System.out.println("end element "+qName);}@Overridepublic void characters(char[] ch, int start,int length){String temp=new String(ch,start,length);System.out.println("characters:"+temp);}}private static void parseXml2(){ServerConfigHandler handler=new ServerConfigHandler();try{XMLReader parser= XMLReaderFactory.createXMLReader();parser.setContentHandler(handler);parser.parse(pathPrefix+serverXmlFile);}catch(IOException e){System.err.println("file open error" + serverXmlFile);}catch(SAXException e){System.err.println("file parser error" + serverXmlFile);}serverId=handler.getServerId();System.out.println("server id "+serverId);}
DOM的例子:
private static void parseXml1(){Document document=null;DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();try{DocumentBuilder builder = builderFactory.newDocumentBuilder();document = builder.parse(new File(pathPrefix+serverXmlFile));}catch(ParserConfigurationException e){System.err.println("parser configuration error");e.printStackTrace();}catch(IOException e){System.err.println("file open error" + serverXmlFile);}catch(SAXException e){System.err.println("file parser error" + serverXmlFile);}Element rootElement = document.getDocumentElement();NodeList nodes = rootElement.getChildNodes();for (int i=0;i< nodes.getLength();i++){Node node = nodes.item(i);if(node.getNodeType()==Node.TEXT_NODE){continue;}System.out.println("node.type:"+node.getNodeType());System.out.println("node.name:"+node.getNodeName());System.out.println("node.value:"+node.getNodeValue());System.out.println("node.textContent:"+node.getTextContent());if(node.getNodeType()==Node.ELEMENT_NODE){Element element=(Element) node;System.out.println("node.description:"+element.getAttribute("description"));}}NodeList nodeList = rootElement.getElementsByTagName("service_id");if(nodeList.getLength()!=1){System.err.println("muliply server_id in "+ serverXmlFile);System.exit(1);}Node node=nodeList.item(0);serverId=node.getTextContent();System.out.println("server id "+serverId);}
xpath例子:
private static void parseXml3(){try{DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();factory.setNamespaceAware(true);DocumentBuilder builder = factory.newDocumentBuilder();Document doc = builder.parse(pathPrefix+serverXmlFile);XPathFactory xfactory = XPathFactory.newInstance();XPath xpath = xfactory.newXPath();XPathExpression expr = xpath.compile("//service_id");XPathExpression expr2= xpath.compile("//service_id/text()");Object result = expr.evaluate(doc,XPathConstants.NODESET);Object result2= expr2.evaluate(doc,XPathConstants.STRING);NodeList nodes = (NodeList)result;for(int i=0;i<nodes.getLength();i++){System.out.println(nodes.item(0).getNodeName());System.out.println(nodes.item(0).getNodeValue());}serverId=(String)result2;System.out.println("server id "+serverId);if(nodes.getLength()>1){System.err.println("muliply server_id in "+ serverXmlFile);System.exit(1);}Node node=nodes.item(0);serverId=node.getTextContent();System.out.println("server id "+serverId);}catch(ParserConfigurationException e){System.err.println("parser configration exception");e.printStackTrace();}catch(Exception e){System.err.println("");e.printStackTrace();}}
0 0
- [xml]java解析xml ,怀旧
- java解析xml 克隆xml
- Java解析XML (DOM解析XML)
- xml解析---Java解析xml文件
- java 解析 xml文件
- java 解析xml
- JAVA解析XML DOM
- java如何解析xml
- JAVA解析XML DOM
- java 解析XML
- JAVA解析xml
- java解析xml字符串
- Java解析XML文档
- JAVA 解析XML文档
- JAVA解析XML DOM
- java解析Xml
- java jdom 解析xml
- java解析XML
- php读xml
- UVa 1103 - Ancient Messages [进制转换+DFS]
- jQuery和CSS3超酷二级下拉菜单插件
- zookeeper应用场景
- 重定向和转发有什么区别?分别通过什么方式来共享数据?
- java解析XML
- JS在iframe中动态的添加地址
- vs插件包的安装
- 游戏字库和win7字库不统一无法识别的问题
- TCP四次挥手关闭读写通道
- feekood如何绘制精灵
- 《鸟哥的Linux私房菜》读书笔记4——几个重要的热键
- Java基础(函数、数组)
- C# linq 随笔参考