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;
}
}