【发布时间】:2015-08-06 16:12:09
【问题描述】:
我正在努力解决for 循环条件,该条件可以将所有xml 子元素添加到ArrayList 中。我可以添加每个子节点,而无需使用如下循环
testData.add(eElement.getElementsByTagName("server").item(0).getTextContent());
我对如何使用 for 循环添加所有元素感到困惑。这是我的测试代码:
ArrayList<String> testData = null;
testData = new ArrayList<>();
File fXmlFile = new File("C://Javaseleniumworld/soemthing.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("staff");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
testData.add(eElement.getElementsByTagName("server").item(0).getTextContent());
testData.add(eElement.getElementsByTagName("username").item(0).getTextContent());
testData.add(eElement.getElementsByTagName("password").item(0).getTextContent());
testData.add(eElement.getElementsByTagName("firstname").item(0).getTextContent());
testData.add(eElement.getElementsByTagName("dobmm").item(0).getTextContent());
testData.add(eElement.getElementsByTagName("dobdd").item(0).getTextContent());
testData.add(eElement.getElementsByTagName("dobyyyy").item(0).getTextContent());
【问题讨论】:
-
在所有孩子的员工下,此代码正在列表中添加文本值
-
我们对您没有提出明确的问题感到困惑。您的代码已经将元素添加到列表中,不是吗?你还需要它做什么?
-
我需要在循环中添加元素而不通过标记名获取元素。我非常接近但对如何循环遍历所有子元素感到困惑
标签: java xml for-loop arraylist xml-parsing