如何使用dom parser java在xml中解析相同的名称标签?
我有以下要使用Java中的dom解析器解析的xml文件。
<?xml version="1.0"?> <GameWorld> <player> <playerID>1</playerID> <inventory> <item>cards</item> <item>notes</item> <item>dice</item> </inventory> <position>50 50 10 60</position> <room>offices</room> </player> <player> <playerID>2</playerID> <inventory> <item>notes</item> <item>dice</item> <item>cards</item> </inventory> <position>10 10 10</position> <room>security room</room> </player> </GameWorld>
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(f); Element root = doc.getDocumentElement(); NodeList nodeList = doc.getElementsByTagName("player"); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); // do your stuff }
但我建议使用XPath
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(<uri_as_string>); XPathFactory xPathfactory = XPathFactory.newInstance(); XPath xpath = xPathfactory.newXPath(); XPathExpression expr = xpath.compile("/GameWorld/player"); NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);