java解析xml文件获取xml里面的信息
2014-02-17 11:03
501 查看
<?xml version="1.0"?>
<InvokeReturn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Success>true</Success> <Time>2014-02-07T10:05:11.1613672+08:00</Time> <Object xsi:type="TerminalModel"> <TerminalId>860806025604744</TerminalId> <TerminalName>HTC</TerminalName> </Object> </InvokeReturn>
要是想解析上面xml里面的信息:使用的dom4j.jar包!!!
下面是我自己写的方法!测试后没问题!
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class TTPP { public TTPP() throws ParserConfigurationException, SAXException, IOException{ DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance(); DocumentBuilder dombuilder=domfac.newDocumentBuilder(); InputStream is=new FileInputStream("/1.xml"); Document doc=dombuilder.parse(is); Element root=doc.getDocumentElement(); NodeList books=root.getChildNodes(); if(books!=null){ for(int i=0;i<books.getLength();i++){ Node book=books.item(i); int p=0;//用来控制读取object标签时循环多次的问题 for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()){//循环读取出xml里面的内容 if(book.getNodeName().equals("Success")){ String success=book.getFirstChild().getNodeValue(); System.out.println("Success:"+success); } if(book.getNodeName().equals("Time")){ String time=book.getFirstChild().getNodeValue(); System.out.println(time); } if(book.getNodeName().equals("Object")){ if(p==0){ System.out.println("ceshi:"+book.getAttributes().getNamedItem("xsi:type").getNodeValue());//当前的标签 NodeList nl=book.getChildNodes(); for(int j=0;j<nl.getLength();j++){ Node childNode = (Node) nl.item(j); if (childNode.getNodeType() == Node.ELEMENT_NODE){ Element childElement = (Element) childNode; String attrA = childElement.getTextContent(); System.out.println("what:"+attrA); //版本号 if ("TerminalId".equals(childElement.getNodeName())){ System.out.println(childElement.getFirstChild().getNodeValue()); } if("TerminalName".equals(childElement.getNodeName())){ System.out.println(childElement.getFirstChild().getNodeValue()); } if("s".equals(childElement.getNodeName())){ System.out.println(childElement.getFirstChild().getNodeValue()); } if("ss".equals(childElement.getNodeName())){ System.out.println(childElement.getFirstChild().getNodeValue()); } } } } p=1; } } } } } public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { new TTPP(); } }输出的内容为:
Success:true 2014-02-07T10:05:11.1613672+08:00 ceshi:TerminalModel what:860806025604744 860806025604744 what:HTC HTC
相关文章推荐
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- Java如何从XML文件中获取节点信息的代码解析 Document方法
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- 用XMLEncoder和XMLDecoder创建并解析XML文件Java实例
- Java之xml文件解析三(JDOM方式解析xml文件)
- 谷歌编码风格内容,新建一个xml文件,复制进去就可以在eclipse里面用了,命名--eclipse-java-google-style.xml
- Java用jdom.jar解析读取XML文件信息
- android 的模拟网页登录获取信息和JSOUP解析xml
- java的xml学习[使用SAX解析XML文件]
- Java反射获取类和对象信息全解析
- java 将xml格式的文本生成xml文件,并获取xml中指定节点的内容
- 在java项目中如何利用Dom4j解析XML文件获取数据
- Android-通过网络获取xml文件使用pull解析得到服务器中的信息(新闻客户端)
- 利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析
- Java反射获取类和对象信息全解析
- 【Java开发】--jdom解析xml-获取xml
- Java解析Xml文件—判断Xml文件的节点是否存在子节点_以及对节点下不同子节点的内容解析方式
- Java反射获取类和对象信息全解析
- SAX 解析XML文件:将XML转换成Java对象