【Java开源代码栏目提醒】:网学会员Java开源代码为您提供XMLOperator.java参考,解决您在XMLOperator.java学习中工作中的难题,参考学习。
package com.hyl.
bbs;
import java.io.*;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.
xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
/**
*
* @author hyl
*/
public class XMLOperator
{
static Document document;
private boolean validating;
public XMLOperator()
{
validating = false;
}
private boolean openXMLDocument(String fileName)
{
boolean bool = true;
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(validating);
factory.setNamespaceAware(false);
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File(fileName));
document.getDocumentElement().normalize();
}
catch(Exception exp)
{
exp.printStackTrace();
bool = false;
}
return bool;
}
public LeaveWords readLeaveWordXML(String fileName)
{
LeaveWords leaveWords = null;
try
{
if(!openXMLDocument(fileName))
return leaveWords;
leaveWords = new LeaveWords();
Node rootNode = document.getFirstChild();
NodeList nodes = rootNode.getChildNodes();
int length = nodes.getLength();
for(int i = 0; i < length; i++)
{
Node node = nodes.item(i);
if(node.getNodeType() == 1 && "leaveword".equalsIgnoreCase(node.getNodeName()))
leaveWords.addLeaveWord(UnmarshallLeaveWord(node));
}
}
catch(Exception exp)
{
exp.printStackTrace();
return null;
}
return leaveWords;
}
public boolean DelLeaveWord(String fileName, String id, String posttime)
{
boolean bool = false;
if(fileName == null || fileName.equals("") || id == null || id.equals("") || posttime == null || posttime.equals(""))
return false;
try
{
if(!openXMLDocument(fileName))
return false;
Node rootNode = document.getFirstChild();
NodeList leaveWordNodes = rootNode.getChildNodes();
int length = leaveWordNodes.getLength();
for(int i = 0; i < length; i++)
{
Node leaveWordNode = leaveWordNodes.item(i);
if(leaveWordNode.getNodeType() == 1 && "leave
word".equalsIgnoreCase(leaveWordNode.getNodeName()))
{
String id2 = "";
String posttime2 = "";
NodeList nodes = leaveWordNode.getChildNodes();
int length2 = nodes.getLength();
for(int j = 0; j < length2; j++)
{
Node node = nodes.item(j);
String nodeName = node.getNodeName();
if("id".equalsIgnoreCase(nodeName))
id2 = UnmarshallText(node);
else
if("posttime".equalsIgnoreCase(nodeName))
posttime2 = UnmarshallText(node);
}
if(id2 != null && !id2.equals("") && posttime2 != null && !posttime2.equals("") && id.equalsIgnoreCase(id2) && posttime.equalsIgnoreCase(posttime2))
{
rootNode.removeChild(leaveWordNode);
saveXML(fileName);
return true;
}
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
bool = false;
}
return bool;
}
public LeaveWord UnmarshallLeaveWord(Node leaveWordNode)
{
LeaveWord leaveWord = new LeaveWord();
NodeList nodes = leaveWordNode.getChildNodes();
int length = nodes.getLength();
for(int i = 0; i < length; i++)
{
Node node = nodes.item(i);
String nodeName = node.getNodeName();
String str = UnmarshallText(node);
if("id".equalsIgnoreCase(nodeName))
leaveWord.setId(str);
else
if("username".equalsIgnoreCase(nodeName))
leaveWord.setUsername(str);
else
if("fromwhere".equalsIgnoreCase(nodeName))
leaveWord.setFromwhere(str);
else
if("posttime".equalsIgnoreCase(nodeName))
leaveWord.setPosttime(str);
else
if("homepage".equalsIgnoreCase(nodeName))
leaveWord.setHomepage(str);
else
if("email".equalsIgnoreCase(nodeName))
leaveWord.setEmail(str);
else
if("text".equalsIgnoreCase(nodeName))
leaveWord.setText(str);
else
if("topic".equalsIgnoreCase(nodeName))
leaveWord.setTopic(str);
else
if("face".equalsIgnoreCase(nodeName))
leaveWord.setFace(str);
}
return leaveWord;
}
public String UnmarshallText(Node textNode)
{
StringBuffer buf = new StringBuffer();
NodeList nodes = textNode.getChildNodes();
int length = nodes.getLength();
for(int i = 0; i < length; i++)
{
Node node = nodes.item(i);
if(node.getNodeType() == 3)
buf.append(node.getNodeValue());
}
return buf.toString();
}
private void writeXML(String fileName)
{
try
{
DocumentBuilderFactory fact