1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| import java.io.ByteArrayInputStream;
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList;
public class XmlParserDemo {
private static final String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<routetable>" + "<route><da>138517</da>" + "<ne>SMSC1</ne></route>" + "<route><da>139139</da>" + "<ne>SMSC2</ne></route>" + "</routetable>";
public static void main(String[] args) { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(new ByteArrayInputStream(xmlString.getBytes())); document.getDocumentElement().normalize(); NodeList table = document.getElementsByTagName("routetable"); System.out.println("routetable list len = " + table.getLength()); for(int i = 0; i < table.getLength(); ++i) { System.out.println("routetable " + i + " name = " + table.item(i).getNodeName()); NodeList list = table.item(i).getChildNodes(); System.out.println("route list len = " + list.getLength()); } System.out.println(); NodeList routeList = document.getElementsByTagName("route"); for(int i = 0; i < routeList.getLength(); ++i) { Node route = routeList.item(i); if(route.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) route; System.out.println("id = " + (element.getAttribute("id").isEmpty() ? "no ID" : element.getAttribute("id"))); System.out.println("da -> " + element.getElementsByTagName("da").item(0).getTextContent()); System.out.println("ne -> " + element.getElementsByTagName("ne").item(0).getTextContent()); } } } catch(Exception e) { e.printStackTrace(); } } }
|