자바 W3C DOM 해석 XML
package com.netunit.workbench.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* XML
*
* @author
*
*/
public class HandleXML {
private Element theNetunit = null;
private Element theProperties = null;
private Element root = null;
public HandleXML() {
}
/**
*
*
* @param ip
* @param geteway
* @param subnet
* @param describe
* @return
*/
public int toWrite(String ip, String geteway, String subnet, String describe) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
factory.setIgnoringElementContentWhitespace(true);
DocumentBuilder db = factory.newDocumentBuilder();
File file = new File(
"E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml");
Document xmldoc = db.parse(file);
root = xmldoc.getDocumentElement();
//
// theNetunit = xmldoc.createElement("root");
theNetunit = xmldoc.createElement("info");
theNetunit.setAttribute("id", ip);
// theNetunit.appendChild(theProperties);
theProperties = xmldoc.createElement("IP");
theProperties.setTextContent(ip);
theNetunit.appendChild(theProperties);
theProperties = xmldoc.createElement("gateway");
theProperties.setTextContent(geteway);
theNetunit.appendChild(theProperties);
theProperties = xmldoc.createElement("subnet");
theProperties.setTextContent(subnet);
theNetunit.appendChild(theProperties);
theProperties = xmldoc.createElement("describe");
theProperties.setTextContent(describe);
theNetunit.appendChild(theProperties);
root.appendChild(theNetunit);
output(theNetunit);
saveXml(
"E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml",
xmldoc);
return 1;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
/**
* IP
*
* @param ip
* @return
*/
public NetunitInfo getOtherMessage(String ip) {
NetunitInfo info = new NetunitInfo();
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
File file = new File(
"E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml");
Document doc = builder.parse(file);
NodeList le = doc.getDocumentElement().getElementsByTagName("IP");
for (int i = 0; i < le.getLength(); i++) {
Node no = le.item(i);
if (ip.equals(no.getFirstChild().getNodeValue())) {
info.setIp(no.getFirstChild().getNodeValue());
Node n = no.getNextSibling();
info.setGateway(n.getNextSibling().getFirstChild()
.getNodeValue());
Node n1 = n.getNextSibling().getNextSibling();
info.setSubnet(n1.getNextSibling().getFirstChild()
.getNodeValue());
Node n2 = n1.getNextSibling().getNextSibling();
info.setDescribe(n2.getNextSibling().getFirstChild()
.getNodeValue());
}
}
return info;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
// IP
public int toUpdate(String ip, String gateway, String subnet,
String describe) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
File file = new File(
"E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml");
Document doc = builder.parse(file);
NodeList le = doc.getDocumentElement().getElementsByTagName("IP");
for (int i = 0; i < le.getLength(); i++) {
Node no = le.item(i);
if (ip.equals(no.getFirstChild().getNodeValue())) {
Node n = no.getNextSibling();
n.getNextSibling().getFirstChild().setNodeValue(gateway);
Node n1 = n.getNextSibling().getNextSibling();
n1.getNextSibling().getFirstChild().setNodeValue(subnet);
Node n2 = n1.getNextSibling().getNextSibling();
n2.getNextSibling().getFirstChild().setNodeValue(describe);
saveXml(
"E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml",
doc);
}
}
return 1;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
// IP
public int toDelete(String ip) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
File file = new File(
"E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml");
Document doc = builder.parse(file);
NodeList le = doc.getElementsByTagName("info");
for(int i = 0; i < le.getLength(); i++){
Element e = (Element) le.item(i);
if(ip.equals(e.getAttribute("id"))){
e.getParentNode().removeChild(e);
saveXml(
"E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml",
doc);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
/**
*
*
* @param node
*/
public static void output(Node node) {
TransformerFactory transFactory = TransformerFactory.newInstance();
try {
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty("encoding", "gb2312");
transformer.setOutputProperty("indent", "yes");
DOMSource source = new DOMSource();
source.setNode(node);
StreamResult result = new StreamResult();
result.setOutputStream(System.out);
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
/**
*
*
* @param express
* @param source
* @return
*/
public static NodeList selectNodes(String express, Object source) {
NodeList result = null;
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
try {
result = (NodeList) xpath.evaluate(express, source,
XPathConstants.NODESET);
} catch (XPathExpressionException e) {
e.printStackTrace();
}
return result;
}
/**
*
*
* @param key
* @return
*/
public static String[] getNodeValue(String key) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
File file = new File(
"E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml");
Document doc = builder.parse(file);
String[] str = new String[doc.getDocumentElement()
.getElementsByTagName("IP").getLength()];
NodeList le = doc.getDocumentElement().getElementsByTagName("IP");
for (int i = 0; i < le.getLength(); i++) {
Node no = le.item(i);
str[i] = no.getTextContent();
}
return str;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
*
*
* @param fileName
* @param doc
*/
public static void saveXml(String fileName, Document doc) {
TransformerFactory transFactory = TransformerFactory.newInstance();
try {
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty("indent", "yes");
DOMSource source = new DOMSource();
source.setNode(doc);
StreamResult result = new StreamResult();
result.setOutputStream(new FileOutputStream(fileName));
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
HandleXML hand = new HandleXML();
//
// hand.toWrite("192.168.0.2", "192.168.0.1", "255.255.255.255",
// "iiiiiiiiiiiiiip");
hand.toDelete("192.168.0.1");
//
try {
// DocumentBuilderFactory factory = DocumentBuilderFactory
// .newInstance();
// DocumentBuilder builder = factory.newDocumentBuilder();
//
// File file = new File("Info.xml");
// Document doc = builder.parse(file);
// String[] str = new
// String[doc.getDocumentElement().getElementsByTagName("IP").getLength()];
//
// System.out.println(str.length);
//
// NodeList le =
// doc.getDocumentElement().getElementsByTagName("IP");
// for(int i=0;i<le.getLength();i++){
// Node no = le.item(i);
// System.out.println(no.getTextContent());
// str[i] = no.getTextContent();
// }
// System.out.println(str.length);
//
//
//
// IP
// DocumentBuilderFactory factory = DocumentBuilderFactory
// .newInstance();
// DocumentBuilder builder = factory.newDocumentBuilder();
//
// File file = new
// File("E:\\workspace\\com.netunit.workbench\\com.netunit.workbench\\com.netunit.workbench\\Info.xml");
//
// Document doc = builder.parse(file);
//
// NodeList le =
// doc.getDocumentElement().getElementsByTagName("IP");
//
// for(int i=0;i<le.getLength();i++){
// Node no = le.item(i);
// System.out.println(no.getFirstChild().getNodeValue());
// if("192.168.5.6".equals(no.getFirstChild().getNodeValue())){
//
// NetunitInfo info = new NetunitInfo();
//
// info.setIp(no.getFirstChild().getNodeValue());
//
// Node n = no.getNextSibling();
//
// info.setGateway(n.getNextSibling().getFirstChild().getNodeValue());
//
// Node n1 = n.getNextSibling().getNextSibling();
//
// System.out.println(n1.getNextSibling().getFirstChild().getNodeValue());
// info.setSubnet(n1.getNextSibling().getFirstChild().getNodeValue());
//
// Node n2 = n1.getNextSibling().getNextSibling();
//
// System.out.println(n2.getNextSibling().getFirstChild().getNodeValue());
//
// info.setDescribe(n2.getNextSibling().getFirstChild().getNodeValue());
//
// }
// }
} catch (Exception e) {
e.printStackTrace();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.