java对xml文件做增删改查------摘录
java對xml文件做增刪改查
package com.wss;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
public class GPS_GNSS_XML_Color {
?? ?//刪除節點時傳入的參數
?? ?private static String deleteNumber;
?? ?
?? ?//修改節點時傳入的參數
?? ?private static String updateNumber;
?? ?
?? ?//讀取傳入的路徑,返回一個document對象
?? ?public static Document loadInit(String filePath){
?? ??? ?Document document = null;
?? ??? ?try{
?? ??? ??? ?DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
?? ??? ??? ?DocumentBuilder builder = factory.newDocumentBuilder();
?? ??? ??? ?document = builder.parse(new File(filePath));
?? ??? ??? ?document.normalize();
?? ??? ??? ?return document;
?? ??? ?}catch(Exception e){
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?System.out.println(e.getMessage());
?? ??? ??? ?return null;
?? ??? ?}
?? ?}
?? ?/**
?? ? * 刪除制定的xml
?? ? * @param filePath
?? ? * @return
?? ? */
?? ?public static boolean deleteXML(String filePath){
?? ??? ?deleteNumber = "421f481e-790c-41be-91e3-27d215b73ce2";
?? ??? ?Document document = loadInit(filePath);
?? ??? ?try{
?? ??? ??? ?NodeList nodeList = document.getElementsByTagName("color");
?? ??? ??? ?for(int i=0; i<nodeList.getLength(); i++){
?? ??? ??? ??? ?String number_ = document.getElementsByTagName("number").item(i).getFirstChild().getNodeValue();
?? ??? ??? ??? ?//刪除節點時傳入的參數
?? ??? ??? ??? ?if(number_.equals(deleteNumber)){
?? ??? ??? ??? ??? ?Node node = nodeList.item(i);
?? ??? ??? ??? ??? ?node.getParentNode().removeChild(node);
?? ??? ??? ??? ??? ?saveXML(document, filePath);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?return true;
?? ??? ?}catch(Exception e){
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?System.out.println(e.getMessage());
?? ??? ??? ?return false;
?? ??? ?}
?? ?}
?? ?
?? ?/**
?? ? * 修改制定的xml
?? ? * @param filePath
?? ? * @return
?? ? */
?? ?public static boolean updateXML(String filePath){
?? ??? ?updateNumber = "421f481e-790c-41be-91e3-27d215b73ce2";
?? ??? ? //讀取傳入的路徑,返回一個document對象
?? ??? ? Document document = loadInit(filePath);
?? ??? ? try{
?? ??? ??? ?//獲取葉節點
?? ??? ??? ? NodeList nodeList = document.getElementsByTagName("color");
?? ??? ??? ?//遍歷葉節點
?? ??? ??? ? for(int i=0; i<nodeList.getLength(); i++){
?? ??? ??? ??? ? String number = document.getElementsByTagName("number").item(i).getFirstChild().getNodeValue();
?? ??? ??? ??? ? String colorValue = document.getElementsByTagName("colorValue").item(i).getFirstChild().getNodeValue();
?? ??? ??? ??? ? Double minValue = Double.parseDouble(document.getElementsByTagName("minValue").item(i).getFirstChild().getNodeValue());
?? ??? ??? ??? ? Double maxValue = Double.parseDouble(document.getElementsByTagName("maxValue").item(i).getFirstChild().getNodeValue());
?? ??? ??? ??? ? //修改節點時傳入的參數
?? ??? ??? ??? ? if(number.equals(updateNumber)){
?? ??? ??? ??? ??? ? document.getElementsByTagName("colorValue").item(i).getFirstChild().setNodeValue("black");
?? ??? ??? ??? ??? ? document.getElementsByTagName("minValue").item(i).getFirstChild().setNodeValue("2222");
?? ??? ??? ??? ??? ? document.getElementsByTagName("maxValue").item(i).getFirstChild().setNodeValue("22222");
?? ??? ??? ??? ??? ? System.out.println();
?? ??? ??? ??? ? }
?? ??? ??? ? }
?? ??? ??? ? saveXML(document, filePath);
?? ??? ??? ? return true;
?? ??? ? }catch(Exception e){
?? ??? ??? ? e.printStackTrace();
?? ??? ??? ? System.out.println(e.getMessage());
?? ??? ??? ? return false;
?? ??? ? }
?? ?}
?? ?
?? ?/**
?? ? * 添加節點
?? ? * @param filePath
?? ? * @return
?? ? */
?? ?public static boolean addXML(String filePath){
?? ??? ?try{
?? ??? ??? ?//讀取傳入的路徑,返回一個document對象
?? ??? ??? ?Document document = loadInit(filePath);
?? ??? ??? ?//創建葉節點
?? ??? ??? ?Element eltColor = document.createElement("color");
?? ??? ??? ?Element eltNumber = document.createElement("number");//創建葉節點的第一個元素
?? ??? ??? ?Element eltColorValue = document.createElement("colorValue");//創建葉節點的第二個元素
?? ??? ??? ?Element eltMinValue = document.createElement("minValue");//創建葉節點的第三個元素
?? ??? ??? ?Element eltMaxValue = document.createElement("maxValue");//創建葉節點的第四個元素
?? ??? ??? ?Text number_ = document.createTextNode(UUID.randomUUID().toString());//創建葉節點的第一個元素下的文本節點
?? ??? ??? ?eltNumber.appendChild(number_);//把該文本節點加入到葉節點的第一個元素里面
?? ??? ??? ?Text colorValue_ = document.createTextNode("colorValue");//創建葉節點的第二個元素下的文本節點
?? ??? ??? ?eltColorValue.appendChild(colorValue_);//把該文本節點加入到葉節點的第二個元素里面
?? ??? ??? ?Text minValue_ = document.createTextNode("100");//創建葉節點的第三個元素下的文本節點
?? ??? ??? ?eltMinValue.appendChild(minValue_);//把該文本節點加入到葉節點的第三個元素里面
?? ??? ??? ?Text maxValue_ = document.createTextNode("200");//創建葉節點的第四個元素下的文本節點
?? ??? ??? ?eltMaxValue.appendChild(maxValue_);//把該文本節點加入到葉節點的第四個元素里面
?? ??? ??? ?//把葉節點下的元素加入到葉節點下
?? ??? ??? ?eltColor.appendChild(eltNumber);
?? ??? ??? ?eltColor.appendChild(eltColorValue);
?? ??? ??? ?eltColor.appendChild(eltMinValue);
?? ??? ??? ?eltColor.appendChild(eltMaxValue);
?? ??? ??? ?//獲取根節點
?? ??? ??? ?Element eltRoot = document.getDocumentElement();
?? ??? ??? ?//把葉節點加入到根節點下
?? ??? ??? ?eltRoot.appendChild(eltColor);
?? ??? ??? ?//更新修改后的源文件
?? ??? ??? ?saveXML(document, filePath);
?? ??? ??? ?return true;
?? ??? ?}catch(Exception e){
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?System.out.println(e.getMessage());
?? ??? ??? ?return false;
?? ??? ?}
?? ?}
?? ?
?? ?/**
?? ? * 把修改后的document寫進源文件(更新源文件)
?? ? * @param document
?? ? * @param filePath
?? ? * @return
?? ? */
?? ?public static boolean saveXML(Document document, String filePath){
?? ??? ?try{
?? ??? ??? ?TransformerFactory tFactory = TransformerFactory.newInstance();
?? ??? ??? ?Transformer transformer = tFactory.newTransformer();
?? ??? ??? ?
?? ??? ??? ?DOMSource source = new DOMSource(document);
?? ??? ??? ?StreamResult result = new StreamResult(new File(filePath));
?? ??? ??? ?transformer.transform(source, result);
?? ??? ??? ?return true;
?? ??? ?}catch(Exception e){
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?System.out.println(e.getMessage());
?? ??? ??? ?return false;
?? ??? ?}
?? ?}
?? ?
?? ?/**
?? ? * 獲取xml文件的所有記錄
?? ? * @param filePath
?? ? * @return
?? ? */
?? ?public static List<ColorValue> selectXML(String filePath){
?? ??? ? List<ColorValue> colorValueList = new ArrayList<ColorValue>();
?? ??? ? try{
?? ??? ??? ? //讀取傳入的路徑,返回一個document對象
?? ??? ??? ? Document document = loadInit(filePath);
?? ??? ??? ? //獲取葉節點
?? ??? ??? ? NodeList nodeList = document.getElementsByTagName("color");
?? ??? ??? ? //遍歷葉節點
?? ??? ??? ? for(int i=0; i<nodeList.getLength(); i++){
?? ??? ??? ??? ? ColorValue colorValue = new ColorValue();
?? ??? ??? ??? ? String number_ = document.getElementsByTagName("number").item(i).getFirstChild().getNodeValue();
?? ??? ??? ??? ? String colorValue_ = document.getElementsByTagName("colorValue").item(i).getFirstChild().getNodeValue();
?? ??? ??? ??? ? Double minValue_ = Double.parseDouble(document.getElementsByTagName("minValue").item(i).getFirstChild().getNodeValue());
?? ??? ??? ??? ? Double maxValue_ = Double.parseDouble(document.getElementsByTagName("maxValue").item(i).getFirstChild().getNodeValue());
?? ??? ??? ??? ? colorValue.setNumber(number_);
?? ??? ??? ??? ? colorValue.setColorValue(colorValue_);
?? ??? ??? ??? ? colorValue.setMinValue(minValue_);
?? ??? ??? ??? ? colorValue.setMaxValue(maxValue_);
?? ??? ??? ??? ? colorValueList.add(colorValue);
?? ??? ??? ? }
?? ??? ??? ? return colorValueList;
?? ??? ? }catch(Exception e){
?? ??? ??? ? e.printStackTrace();
?? ??? ??? ? System.out.println(e.getMessage());
?? ??? ??? ? return null;
?? ??? ? }
?? ?}
}
package com.wss;
public class ColorValue {
?? ?private String number;
?? ?private String colorValue;
?? ?private Double minValue;
?? ?private Double maxValue;
?? ?public String getNumber() {
?? ??? ?return number;
?? ?}
?? ?public void setNumber(String number) {
?? ??? ?this.number = number;
?? ?}
?? ?public String getColorValue() {
?? ??? ?return colorValue;
?? ?}
?? ?public void setColorValue(String colorValue) {
?? ??? ?this.colorValue = colorValue;
?? ?}
?? ?public Double getMinValue() {
?? ??? ?return minValue;
?? ?}
?? ?public void setMinValue(Double minValue) {
?? ??? ?this.minValue = minValue;
?? ?}
?? ?public Double getMaxValue() {
?? ??? ?return maxValue;
?? ?}
?? ?public void setMaxValue(Double maxValue) {
?? ??? ?this.maxValue = maxValue;
?? ?}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Colors>
?? ?<color>
?? ??? ?<number>7007b384-fab3-4779-9171-229d0664b6b5</number>
?? ??? ?<colorValue>black</colorValue>
?? ??? ?<minValue>2222</minValue>
?? ??? ?<maxValue>22222</maxValue>
?? ?</color>
?? ?<color>
?? ??? ?<number>421f481e-790c-41be-91e3-27d215b73ce2</number>
?? ??? ?<colorValue>colorValue</colorValue>
?? ??? ?<minValue>100</minValue>
?? ??? ?<maxValue>200</maxValue>
?? ?</color>
</Colors>
?
轉載于:https://www.cnblogs.com/ximencuixue/p/3200471.html
總結
以上是生活随笔為你收集整理的java对xml文件做增删改查------摘录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高坨镇有军校吗?
- 下一篇: Poj 3246 Balanced Li