使用java读取/解析XML数据
来源:互联网 发布:360软件开放 编辑:程序博客网 时间:2024/05/19 02:44
DOM方式解析XML
在根目录下新建languages.xml文件,其内容为
<?xml version="1.0" encoding="UTF-8"?><languages cat = "it"> <lan id="1"> <name>java</name> <ide>Eclipse</ide> </lan> <lan id="2"> <name>Swift</name> <ide>Xcode</ide> </lan> <lan id="3"> <name>C#</name> <ide>Visual Studio</ide> </lan></languages>
ReadXML.java
import java.io.File;import java.io.IOException;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 ReadXML { //使用java读取XML数据 public static void main(String[] args) { //DOM 方式解析XML DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new File("languages.xml")); Element root = document.getDocumentElement(); System.out.println("cat="+root.getAttribute("cat")); NodeList list = root.getElementsByTagName("lan"); for(int i=0;i<list.getLength();i++){ Element lan = (Element) list.item(i); System.out.println("----------"); System.out.println("id="+lan.getAttribute("id")); /* * 获取其子节点时,通过getElementsByTagName获取NodeList的方式获取,效率较低,故不推荐 */ // Element name = (Element) lan.getElementsByTagName("name").item(0); // System.out.println("name="+name.getTextContent()); //推荐使用:getChildNodes() NodeList child = lan.getChildNodes(); for(int j=0;j<child.getLength();j++){ Node element = child.item(j); if(element instanceof Element){ System.out.println(element.getNodeName()+"="+element.getTextContent()); } } } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
运行后的结果为:
cat=it----------id=1name=javaide=Eclipse----------id=2name=Swiftide=Xcode----------id=3name=C#ide=Visual Studio
0 0
- 使用java读取/解析XML数据
- JAVA:使用Java读取XML数据
- Java解析XML(一) 使用DOM读取XML文件
- 读取与解析XML数据
- Android使用DOM读取与解析XML格式数据
- JAVA-使用SAX解析XML数据
- java --- Xml数据解析
- 读取和解析XML数据----读取XML DocumentBuilderFactory
- java中使用xPath读取xml中的数据
- 使用XMLList读取XML数据
- 使用dom4j读取XML数据
- JAVA操作XML一(读取):使用DOM读取XML数据的两种具体实现
- 2014.10.31读取和解析XML数据
- Java解析(读取)Json数据{}、[{}]
- Java解析(读取)Json数据
- Java解析(读取)Json数据
- XML-----2、Java读取XML数据
- java读取xml和xml写入数据
- Azure SQL Database 简介
- c#实现写入,读取实现百度搜索框
- JMS中的MDB原理及测试
- 编程心得
- 学习shader之前必须知道的东西之计算机图形学(一)渲染管线
- 使用java读取/解析XML数据
- 安卓6.0运行时权限,终极答案
- ArcGIS10.1新建拓扑问题 执行(CopyFeature)失败
- 210. Course Schedule II 难度:medium 类别:图
- 手动释放linux内存cache和脚本定时释放
- spring的resources---针对于资源文件的统一接口
- [Leetcode] Remove Duplicates from Sorted Array
- sentinel搭建redis集群的注意事项
- 动态缓存技术之CSI,SSI,ESI