Java操作XML工具类XmlUtil详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java操作XML⼯具类XmlUtil详解本⽂实例为⼤家分享了Java操作XML⼯具类的具体代码,供⼤家参考,具体内容如下
⼀、代码
public class XmlUtil {
/**
* 将XML⽂件输出到指定的路径
*
* @param doc
* @param fileName
* @throws Exception
*/
public static void outputXml(Document doc, String fileName)
throws Exception {
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(doc);
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println("⽣成XML⽂件成功!");
}
/**
* ⽣成XML
*
* @param ip
* @return
*/
public static Document generateXml(String ip) {
Document doc = null;
Element root = null;
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.newDocument();
root = doc.createElement("errorDevices");
doc.appendChild(root);
} catch (Exception e) {
e.printStackTrace();
return null;// 如果出现异常,则不再往下执⾏
}
Element element;
element = doc.createElement("errorDevice");
element.setAttribute("ip", ip);
element.setAttribute("date",
StringUtil.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"));
element.setAttribute("status", "1");
root.appendChild(element);
return doc;
}
/**
* 新增Xml节点
*
* @param ip
* @param fileName
* @return
* @throws FileNotFoundException
* @throws TransformerException
*/
public static void toWrite(String filename, String ip)
throws FileNotFoundException, TransformerException {
String date = StringUtil.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
Document doc = null;
try {
builder = factory.newDocumentBuilder();
doc = builder.parse(new File(filename));
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
NodeList links = doc.getElementsByTagName("errorDevice");
if (links.getLength() > 0) {
for (int i = 0; i < links.getLength(); i++) {
Node nd = links.item(i);
Node catParent = nd.getParentNode();
Element ele = (Element) nd;
String url = ele.getAttribute("ip");
if (url.equals(ip)) {
// ele.setAttribute("date", date);
catParent.removeChild(nd);
}
}
}
Element element = doc.createElement("errorDevice");
element.setAttribute("ip", ip);
element.setAttribute("date",
StringUtil.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"));
element.setAttribute("status", "1");
doc.getDocumentElement().appendChild(element);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(doc);
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(filename));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println("新增XML节点成功!");
}
/**
* 读取XML
*
* @param filename
* @return
*/
public static List<Map> readXml(String filename){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = null;
Document doc = null;
try {
builder = factory.newDocumentBuilder();
doc = builder.parse(new File(filename));
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
NodeList links = doc.getElementsByTagName("errorDevice");
List<Map> list = new ArrayList<Map>();
for(int i = 0; i< links.getLength() ; i ++){
Element node = (Element)links.item(i);
Map map = new HashMap();
map.put(node.getAttribute("ip"), node.getAttribute("date"));
list.add(map);
}
return list;
}
}
⼆、演⽰XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<errorDevices>
<errorDevice date="2017-03-13 12:54:16" ip="20.100.156.42" status="1"/>
<errorDevice date="2017-03-13 12:54:56" ip="20.100.156.41" status="1"/>
</errorDevices>
三、最终效果图
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

相关文档
最新文档