Java解析xml
實例一:
源碼:
import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class DOMTest1 { public static void main(String[] args) throws Exception { //獲得DOM解析工廠 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); //獲得解析器 DocumentBuilder db=dbf.newDocumentBuilder(); //解析xml文件 Document document=db.parse(new File("person.xml")); NodeList list=document.getElementsByTagName("person"); for(int i=0;i<list.getLength();i++){ Element element=(Element) list.item(i); String str1=element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue(); System.out.println("name:"+str1); String str2=element.getElementsByTagName("age").item(0).getFirstChild().getNodeValue(); System.out.println("name:"+str2); String str3=element.getElementsByTagName("address").item(0).getFirstChild().getNodeValue(); System.out.println("name:"+str3); System.out.println("--------------------------"); } } }person.xml 文件內容:
<?xml version="1.0"?> <people> <person> <name>weiwei1</name> <age>22</age> <address>jiangsu1</address> </person> <person> <name>weiwei2</name> <age>23</age> <address>jiangsu2</address> </person> <person> <name>weiwei3</name> <age>24</age> <address>jiangsu3</address> </person> </people>
實例二:
源碼:
import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Attr; import org.w3c.dom.Comment; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /* * 使用遞歸解析給定的任意一個xml文檔,并且將其內容輸出到命令行 */ public class DOMTest2 { public static void main(String[] args) throws Exception { DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=dbf.newDocumentBuilder(); Document document=db.parse(new File("student.xml")); //獲得根元素節點 Element root=document.getDocumentElement(); parseElement(root); } private static void parseElement(Element element){ //獲得元素的名字 String tagName=element.getNodeName(); //獲得這個結點的孩子 NodeList list=element.getChildNodes(); System.out.print("<"+tagName); //獲得這個結點的所有的屬性 NamedNodeMap map=element.getAttributes(); if(null!=map){ for(int i=0;i<map.getLength();i++){ Attr attr=(Attr) map.item(i); String name=attr.getName(); String value=attr.getValue(); System.out.print(" "+name+"=\""+value+"\""); } } System.out.print(">"); for(int i=0;i<list.getLength();i++){ Node node=list.item(i); //獲得結點類型 short nodeType=node.getNodeType(); //是元素 if(nodeType==Node.ELEMENT_NODE){ //是元素,所以繼續遞歸 parseElement((Element) node); }// 是文本 else if(nodeType==Node.TEXT_NODE){ //遞歸出口 System.out.print(node.getNodeValue()); }//是注釋 else if(nodeType==Node.COMMENT_NODE){ System.out.print("<!--"); Comment comment=(Comment)node; String str=comment.getData(); System.out.print(str+"-->"); } } System.out.println("</"+tagName+">"); } }student.xml文件內容:
<?xml version="1.0" encoding="gbk" standalone="yes"?> <學生名冊> <!--This is a student information--> <學生 學號="1"> <姓名>李斯</姓名> <性別>男</性別> <年齡>22</年齡> </學生> <學生 學號="2"> <姓名>王五</姓名> <性別>女</性別> <年齡>21</年齡> </學生> <學生 學號="3"> <姓名>張三</姓名> <性別>男</性別> <年齡>20</年齡> </學生> </學生名冊>
本文由用戶 tzpu2458 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!