XML解析器

时间:2017-08-31 08:52:16

标签: java xml

我想解析XML文件并分别使用节点的值。 我已经制作了解析器和pojo类。

我想用节点中的对象创建ArrayList。例如,我想使用Object [1]用户名值(root)。

这是我的XML:

 <Class>
<Nodes>
    <node id="1">
        <username>root</username>
        <password>blabla</password>
        <hostname>222.222.222.222</hostname>
        <port>50</port>
        <node_dir>/usr/etc</node_dir>
        <pc_dir>C:\Users\bla\Desktop\bla</pc_dir>
    </node> 

    <node id="2">
        <username>blabla</username>
        <password>ooo</password>
        <hostname>111.117.111.111</hostname>
        <port>30</port>
        <node_dir>/usr/etc</node_dir>
        <pc_dir>C:\Users\bla\Desktop\bla</pc_dir>
    </node> 
</Nodes>
</Class>

这是我的解析Java代码:

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

import com.abc.sftpNew.NodeModel.nodeModel;

import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;
import java.util.ArrayList;

public class deserialize extends nodeModel {

 public static ArrayList<nodeModel> readXml() {



  ArrayList<nodeModel> objekt = new ArrayList<nodeModel>();
  try {
   nodeModel nov = new nodeModel();

   File fXmlFile = new File("input.xml");
   DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
   DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
   Document doc = dBuilder.parse(fXmlFile);

   doc.getDocumentElement().normalize();

   NodeList listOfPersons = doc.getElementsByTagName("node");
   int totalNodes = listOfPersons.getLength();   


   System.out.println("Total number of nodes : " + totalNodes);
   System.out.println("---------------------------------------");

   System.out.println("Root element :" + 
doc.getDocumentElement().getNodeName());

   NodeList nList = doc.getElementsByTagName("node");

   System.out.println("----------------------------");

   for (int temp = 0; temp < nList.getLength(); temp++) {  

    Node nNode = nList.item(temp);

    System.out.println("Current Element :" + nNode.getNodeName());

    if (nNode.getNodeType() == Node.ELEMENT_NODE) {     

     Element eElement = (Element) nNode;

     System.out.println("Node id: " + eElement.getAttribute("id"));
     nov.setNode(eElement.getAttribute("id"));

     System.out.println("Username: " + 
eElement.getElementsByTagName("username").item(0).getTextContent());


  nov.setUsername(eElement.getElementsByTagName("username").item(0)
.getTextContent());

      System.out.println("Password: " + 
eElement.getElementsByTagName("password").item(0)
.getTextContent());

 nov.setPassword(eElement.getElementsByTagName("password").item(0)
 .getTextContent());

     System.out.println("Hostname: " + 
eElement.getElementsByTagName("hostname").item(0)
.getTextContent());
     nov.setHostname(eElement.getElementsByTagName("hostname").item(0)
.getTextContent());

 System.out.println("Port: " + eElement.getElementsByTagName("port").item(0).getTextContent());
 nov.setPort(Integer.parseInt(eElement.getElementsByTagName("port").item(0).getTextContent()));

 System.out.println("Directory on the server: "
   + eElement.getElementsByTagName("nodeDirectory").item(0).getTextContent());
 nov.setNodeDirectory(eElement.getElementsByTagName("nodeDirectory").item(0).getTextContent());

 System.out.println("Directory on the computer: "
   + eElement.getElementsByTagName("pcDirectory").item(0).getTextContent());
 nov.setPcDirectory(eElement.getElementsByTagName("pcDirectory").item(0).getTextContent());

 System.out.println(
   "Time interval: " + eElement.getElementsByTagName("timeInterval").item(0).getTextContent());
 nov.setTimeInterval(
   Integer.parseInt(eElement.getElementsByTagName("timeInterval").item(0).getTextContent()));

 System.out.println("--------------------------------------------------------------------");

  }

   }

  } catch (Exception e) {
   e.printStackTrace();
  }
  return null;
}
  }

这是我的pojo课程:

public class NodeModel {
    private String username;
    private String localhost;
    private int port;
    private String hostname;
    private String node_dir;
    private String pc_dir;


public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}
private String password;

public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getLocalhost() {
    return localhost;
}
public void setLocalhost(String localhost) {
    this.localhost = localhost;
}
public int getPort() {
    return port;
}
public void setPort(int port) {
    this.port = port;
}
public String getHostname() {
    return hostname;
}
public void setHostname(String hostname) {
    this.hostname = hostname;
}
public String getNode_dir() {
    return node_dir;
}
public void setNode_dir(String node_dir) {
    this.node_dir = node_dir;
}
public String getPc_dir() {
    return pc_dir;
}
public void setPc_dir(String pc_dir) {
    this.pc_dir = pc_dir;
}
}

0 个答案:

没有答案