JAVA操縱XML

 
public class WmsConfigure {
    
private String fileName = "configure.xml";
    
    
//name指XML中需查找的節點名,index指如果XML裏有多個以name爲名的節點,需查找節點的位置,attribute指需查找的屬性名
    /** Creates a new instance of WmsConfigure */
    
public WmsConfigure() {
    }

    
    
public WmsConfigure(String fileName) {
        
this.fileName = fileName;
    }

    
    
public String getValue(String name,String attribute){
        
return this.getValue(name,0,attribute);
    }

    
    
public boolean setValue(String name,String attribute,String value){
        
return this.setValue(name,0,attribute,value);
    }

    
    
//獲取fileName文件中,第index個name元素的attribute屬性的值
    public String getValue(String name,int index,String attribute){
        
try {
            DocumentBuilderFactory docBF
=DocumentBuilderFactory.newInstance();
            DocumentBuilder docB 
= docBF.newDocumentBuilder();
            Document doc
=docB.parse(new File(fileName));
            String value
=((Element)doc.getElementsByTagName(name).item(index)).getAttribute(attribute);
            
if(value.equals(""))
                
return null;
            
return value;
        }
 catch (ParserConfigurationException ex) {
            ex.printStackTrace();
        }
 catch (SAXException ex) {
            ex.printStackTrace();
        }
 catch (IOException ex) {
            ex.printStackTrace();
        }

        JOptionPane.showMessageDialog(JWmsMainFrame.thisFrame,
"獲取"+name+"發生異常");
        
return null;
    }

    
    
//設置fileName文件中,第index個name元素的attribute屬性的值爲value
    public boolean setValue(String name,int index,String attribute,String value){
        Document doc
=null;
        
//將值寫入Document
        try {
            DocumentBuilderFactory docBF
=DocumentBuilderFactory.newInstance();
            DocumentBuilder docB 
= docBF.newDocumentBuilder();
            doc
=docB.parse(new File(fileName));
            ((Element)doc.getElementsByTagName(name).item(index)).setAttribute(attribute,value);
        }
catch (ParserConfigurationException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(JWmsMainFrame.thisFrame,
"設置"+name+"發生異常");
        }
catch (SAXException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(JWmsMainFrame.thisFrame,
"設置"+name+"發生異常");
        }
 catch (IOException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(JWmsMainFrame.thisFrame,
"設置"+name+"發生異常");
        }

        
        
//將修改後的Document寫回到XML文件
        try {
            TransformerFactory tff 
= TransformerFactory.newInstance();
            Transformer tf
=null;
            tf 
= tff.newTransformer();
            tf.transform(
new DOMSource(doc),new StreamResult(new File(fileName)));
            
return true;
        }
catch (TransformerConfigurationException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(JWmsMainFrame.thisFrame,
"設置"+name+"發生異常");
        }
catch (TransformerException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(JWmsMainFrame.thisFrame,
"設置"+name+"發生異常");
        }

        
return false;
    }

    
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章