import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
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.NodeList;
import org.w3c.dom.Text;
public class paseXml {
private static final String NAME = "name";
private static final String ERROR_COUNT = "errorCount";
private static final String PASSWORD = "password";
private static final String USER = "user";
public static void main(String[] args) {
String filePath = "D:\\software\\eclipse\\userInfo.xml";
readXmlUserInfo(filePath);
queryUserInfo(filePath, "admin");
updateUserInfo(filePath, "admin", PASSWORD, "Test1234");
updateUserInfo(filePath, "admin", ERROR_COUNT, "1");
addUserInfo(filePath, "system", "System", 0);
deleteUserInfo(filePath, "system");
}
private static boolean queryUserInfo(String filePath, String userName) {
Document document = loadInit(filePath);
NodeList nodeList = document.getElementsByTagName(USER);
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
String name = (String) user.getAttribute(NAME);
if (userName.equals(name)) {
return true;
}
}
return false;
}
public static void deleteUserInfo(String filePath, String userName) {
Document document = loadInit(filePath);
NodeList nodeList = document.getElementsByTagName(USER);
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
String name = (String) user.getAttribute(NAME);
if (userName.equals(name)) {
user.getParentNode().removeChild(nodeList.item(i));
saveXML(document, filePath);
}
}
}
/**
* 添加XML文件
*
* @param filePath
* @param username
* @param password
* @param count
*/
public static void addUserInfo(String filePath, String username,
String password, int count) {
Document document = loadInit(filePath);
Element userElement = document.createElement(USER);
Element pwdElement = document.createElement(PASSWORD);
Element countElement = document.createElement(ERROR_COUNT);
Text pwdtext = document.createTextNode(password);
Text counttext = document.createTextNode(String.valueOf(count));
pwdElement.appendChild(pwdtext);
countElement.appendChild(counttext);
userElement.setAttribute(NAME, username);
userElement.appendChild(pwdElement);
userElement.appendChild(countElement);
Element documentElement = document.getDocumentElement();
documentElement.appendChild(userElement);
saveXML(document, filePath);
}
/**
* 修改Xml文件
*/
public static void updateUserInfo(String filePath, String username,
String attrName, String value) {
Document document = loadInit(filePath);
NodeList nodeList = document.getElementsByTagName(USER);
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
String name = (String) user.getAttribute(NAME);
if (username.equals(name)) {
user.getElementsByTagName(attrName).item(0).setTextContent(
value);
}
}
saveXML(document, filePath);
}
/**
* 读xml文件
*
* @param filePath
*/
public static void readXmlUserInfo(String filePath) {
Document document = loadInit(filePath);
NodeList nodeList = document.getElementsByTagName(USER);
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
String userName = (String) user.getAttribute(NAME);
String password = (String) user.getElementsByTagName(PASSWORD)
.item(0).getTextContent();
String errorCount = (String) user.getElementsByTagName(ERROR_COUNT)
.item(0).getTextContent();
UserInfo userinfo = new UserInfo();
userinfo.setCount(Integer.valueOf(errorCount));
userinfo.setUsername(userName);
userinfo.setPassword(password);
System.out.println(userinfo.toString());
}
}
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.setOutputProperty(OutputKeys.INDENT, "yes");// 增加换行缩进,但此时缩进默认为0
transformer.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount", "2");// 设置缩进为2
transformer.transform(source, result);
return true;
} catch (Exception e) {
return false;
}
}
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) {
return null;
}
}
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
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.NodeList;
import org.w3c.dom.Text;
public class paseXml {
private static final String NAME = "name";
private static final String ERROR_COUNT = "errorCount";
private static final String PASSWORD = "password";
private static final String USER = "user";
public static void main(String[] args) {
String filePath = "D:\\software\\eclipse\\userInfo.xml";
readXmlUserInfo(filePath);
queryUserInfo(filePath, "admin");
updateUserInfo(filePath, "admin", PASSWORD, "Test1234");
updateUserInfo(filePath, "admin", ERROR_COUNT, "1");
addUserInfo(filePath, "system", "System", 0);
deleteUserInfo(filePath, "system");
}
private static boolean queryUserInfo(String filePath, String userName) {
Document document = loadInit(filePath);
NodeList nodeList = document.getElementsByTagName(USER);
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
String name = (String) user.getAttribute(NAME);
if (userName.equals(name)) {
return true;
}
}
return false;
}
public static void deleteUserInfo(String filePath, String userName) {
Document document = loadInit(filePath);
NodeList nodeList = document.getElementsByTagName(USER);
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
String name = (String) user.getAttribute(NAME);
if (userName.equals(name)) {
user.getParentNode().removeChild(nodeList.item(i));
saveXML(document, filePath);
}
}
}
/**
* 添加XML文件
*
* @param filePath
* @param username
* @param password
* @param count
*/
public static void addUserInfo(String filePath, String username,
String password, int count) {
Document document = loadInit(filePath);
Element userElement = document.createElement(USER);
Element pwdElement = document.createElement(PASSWORD);
Element countElement = document.createElement(ERROR_COUNT);
Text pwdtext = document.createTextNode(password);
Text counttext = document.createTextNode(String.valueOf(count));
pwdElement.appendChild(pwdtext);
countElement.appendChild(counttext);
userElement.setAttribute(NAME, username);
userElement.appendChild(pwdElement);
userElement.appendChild(countElement);
Element documentElement = document.getDocumentElement();
documentElement.appendChild(userElement);
saveXML(document, filePath);
}
/**
* 修改Xml文件
*/
public static void updateUserInfo(String filePath, String username,
String attrName, String value) {
Document document = loadInit(filePath);
NodeList nodeList = document.getElementsByTagName(USER);
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
String name = (String) user.getAttribute(NAME);
if (username.equals(name)) {
user.getElementsByTagName(attrName).item(0).setTextContent(
value);
}
}
saveXML(document, filePath);
}
/**
* 读xml文件
*
* @param filePath
*/
public static void readXmlUserInfo(String filePath) {
Document document = loadInit(filePath);
NodeList nodeList = document.getElementsByTagName(USER);
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
String userName = (String) user.getAttribute(NAME);
String password = (String) user.getElementsByTagName(PASSWORD)
.item(0).getTextContent();
String errorCount = (String) user.getElementsByTagName(ERROR_COUNT)
.item(0).getTextContent();
UserInfo userinfo = new UserInfo();
userinfo.setCount(Integer.valueOf(errorCount));
userinfo.setUsername(userName);
userinfo.setPassword(password);
System.out.println(userinfo.toString());
}
}
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.setOutputProperty(OutputKeys.INDENT, "yes");// 增加换行缩进,但此时缩进默认为0
transformer.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount", "2");// 设置缩进为2
transformer.transform(source, result);
return true;
} catch (Exception e) {
return false;
}
}
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) {
return null;
}
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<userInfo>
<user name="admin">
<password>1234</password>
<errorCount>1</errorCount>
</user>
</userInfo>