DOM解析的例子
2915 点击·0 回帖
![]() | ![]() | |
![]() | 下面代码使用DOM解析XML文件 [java] package com.app; 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 DOMXMLReader { public static void main(String args[]) { try { DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("url.xml"); doc.normalize(); NodeList links = doc.getElementsByTagName("link"); for (int i = 0; i < links.getLength(); i++) { Element link = (Element) links.item(i); System.out.print("Content: "); System.out.println(link.getElementsByTagName("text").item(0) .getFirstChild().getNodeValue()); System.out.print("URL: "); System.out.println(link.getElementsByTagName("url").item(0) .getFirstChild().getNodeValue()); System.out.print("Author: "); System.out.println(link.getElementsByTagName("author").item(0) .getFirstChild().getNodeValue()); System.out.print("Date: "); Element linkdate = (Element) link.getElementsByTagName("date") .item(0); String day = linkdate.getElementsByTagName("day").item(0) .getFirstChild().getNodeValue(); String month = linkdate.getElementsByTagName("month").item(0) .getFirstChild().getNodeValue(); String year = linkdate.getElementsByTagName("year").item(0) .getFirstChild().getNodeValue(); System.out.println(day + "-" + month + "-" + year); System.out.print("Description: "); System.out.println(link.getElementsByTagName("description") .item(0).getFirstChild().getNodeValue()); System.out.println(); } } catch (Exception e) { e.printStackTrace(); } } } 下面代码修改XML文件: package com.app; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Text; public class DOMXMLWriter { public static void main(String args[]) { try { DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("url.xml"); doc.normalize(); // ---取得变量---- String text = "itjob"; String url = "www.5itjob.com"; String author = "xsw"; String discription = "a good website for it job!"; // ------------- Text textseg; Element link = doc.createElement("link"); Element linktext = doc.createElement("text"); textseg = doc.createTextNode(text); linktext.appendChild(textseg); link.appendChild(linktext); Element linkurl = doc.createElement("url"); textseg = doc.createTextNode(url); linkurl.appendChild(textseg); link.appendChild(linkurl); Element linkauthor = doc.createElement("author"); textseg = doc.createTextNode(author); linkauthor.appendChild(textseg); link.appendChild(linkauthor); java.util.Calendar rightNow = java.util.Calendar.getInstance(); String day = Integer.toString(rightNow .get(java.util.Calendar.DAY_OF_MONTH)); String month = Integer.toString(rightNow .get(java.util.Calendar.MONTH)); String year = Integer.toString(rightNow .get(java.util.Calendar.YEAR)); Element linkdate = doc.createElement("date"); Element linkdateday = doc.createElement("day"); textseg = doc.createTextNode(day); linkdateday.appendChild(textseg); Element linkdatemonth = doc.createElement("month"); textseg = doc.createTextNode(month); linkdatemonth.appendChild(textseg); Element linkdateyear = doc.createElement("year"); textseg = doc.createTextNode(year); linkdateyear.appendChild(textseg); linkdate.appendChild(linkdateday); linkdate.appendChild(linkdatemonth); linkdate.appendChild(linkdateyear); link.appendChild(linkdate); Element linkdiscription = doc.createElement("description"); textseg = doc.createTextNode(discription); linkdiscription.appendChild(textseg); link.appendChild(linkdiscription); doc.getDocumentElement().appendChild(link); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new java.io.File("url.xml")); transformer.transform(source, result); System.out.println("write complete!"); } catch (Exception e) { e.printStackTrace(); } } } | |
![]() | ![]() |