XML 解析(SaxReader)

package schedulers;
import java.io.File;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import util.PubFun;

public class XMLReader {

private Document instance = null;

public XMLReader( File file ) {
try {
final SAXReader xmlReader = new SAXReader();
instance = xmlReader.read(file);
} catch (DocumentException e) {
System.out.println(file.getPath() + " can't be found");
}
}

public XMLReader(StringReader stringReader) {
try {

final SAXReader xmlReader = new SAXReader();
instance = xmlReader.read(stringReader);
//logger.debug("StringReader successfully loaded");

} catch (DocumentException e) {
System.out.println("StringReader can't be load => "+stringReader.toString());
}
}

public XMLReader(String strXML) {
try {
instance = DocumentHelper.parseText(strXML);
} catch (DocumentException e) {
System.out.println("StringReader can't be load => "+strXML);
}
}

public String getValue( String nodeName ) {

if (!PubFun.isNullorBlank(nodeName)) {
final Node node = instance.selectSingleNode(nodeName);
return ("null".equals(node.getText()) ? null : node.getText());
} else {
System.out.println("String is NULL");
return null;
}
}

public List getNodes( String nodeName ) {
if (!PubFun.isNullorBlank(nodeName)) {
List listNodes = instance.selectNodes(nodeName);
return listNodes;
} else {
System.out.println("String is NULL");
return null;
}
}

public String getNodeValue( Node node, String nodeName ) {
if (!PubFun.isNullorBlank(nodeName)) {
final Node subNode = node.selectSingleNode(nodeName);
return ("null".equals(subNode.getText()) ? null : subNode.getText());
} else {
System.out.println("String is NULL");
return null;
}
}

public boolean removeNode(Node node){
return node.getParent().remove(node);
}

public Element addElement(String elementName){
return instance.getRootElement().addElement(elementName);
}

public Document getRoot(){
return instance;
}

public String writeToString(){
StringWriter strReturn = new StringWriter();
XMLWriter writer = null;
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
try {
//writer= new XMLWriter(ll,format);
writer = new XMLWriter(strReturn,format);
//writer = new XMLWriter(new FileOutputStream(new File("c:\\aaa.xml")),format);
writer.write(instance);
writer.close();
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return strReturn.toString();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值