java写xml以及向xml追加节点内容
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
l.parsers.DocumentBuilder;
l.parsers.DocumentBuilderFactory;
l.transform.OutputKeys;
l.transform.Transformer;
l.transform.TransformerConfigurationException;
l.transform.TransformerFactory;
l.transform.dom.DOMSource;
l.transform.stream.StreamResult;
import org.dom4j.DocumentHelper;
import org.w3c.dom.Attr;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Comment;
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.DOMException;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.DocumentType;
import org.w3c.dom.Element;
import org.w3c.dom.EntityReference;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.ProcessingInstruction;
import org.w3c.dom.Text;
import org.w3c.dom.UserDataHandler;
// 将⽤户要增加的倾向性分析数据增加⾄XML⽂件
private static void updateSentimentFile(String title, String text, String lable,long time) throws Exception {
String filePath = util.Constants.SENTIMENT_FILE_PATH;//获取配置的倾向性⽬录
// 上传后实际保存在服务器上的⽂件名:
String saveName = "sentiment_" + time + "_" + XString.random(8) + ".xml";//"_" + System.currentTimeMillis() + "_" + XString.random(8) + "_" + Nam title = placeAll("<", " ").replaceAll(">", " ");//过滤xml敏感符号 < 和 >
text = placeAll("<", " ").replaceAll(">", " ");//过滤xml敏感符号 < 和 >
// 创建保存⽬录
File toSave = new File(filePath + "a/");
if (!ists()) {
toSave.mkdirs();
}
// 保存⽂件
toSave = new File(filePath + "a/" + saveName);
File checkFile = new File(filePath + "");
ists()){//删除校验⽂件
play.libs.Files.delete(checkFile);
}
createXML(title, text, lable, time, toSave);//写⼊添加的⽂件到A⽬录
File bFile = new File(filePath + "b/");
if (!ists()) {
bFile.mkdirs();
}
bFile = new File(filePath + "l");
if (!ists()) {
play.py(toSave, bFile);//B⽬录没有XML的情况下将A⽬录的XML写⼊B⽬录
}else{
writeXML(title, text, lable, time, bFile, toSave);//B⽬录存在XML的情况下向B⽬录的XML增加写⼊传来的内容
}
}
//向xml追加节点内容
private static void writeXML(String title, String text, String lable, long time, File bFile, File aFile) throws Exception{
/*Document docs = null;
try {
docs = play.Document(bFile);
} catch (Exception e) {
play.libs.Files.delete(bFile);
play.py(aFile, bFile);
return;
}*/
// 1.得到DOM解析器的⼯⼚实例
DocumentBuilderFactory dbf = wInstance();
// 2.从DOM⼯⼚⾥获取DOM解析器
DocumentBuilder db = wDocumentBuilder();
// 3.解析XML⽂档,得到DOM树
Document docs = null;
try {
docs = db.parse(bFile);
} catch (Exception e) {
play.libs.Files.delete(bFile);
play.py(aFile, bFile);
return;
}
//创建节点
//创建节点
Element docElement = ateElement("doc");
Element lableElement = ateElement("lable");
Text l = ateTextNode(lable);
lableElement.appendChild(l);//lableElement.setNodeValue(lable);
Element titleElement = ateElement("title");
Text t = ateTextNode(title);
titleElement.appendChild(t);//titleElement.setNodeValue(title);
Element textElement = ateElement("text");
Text x = ateTextNode(text);
textElement.appendChild(x);//textElement.setNodeValue(text);
Element timeElement = ateElement("timemillis");
Text m = ateTextNode(time + "");
timeElement.appendChild(m);
//添加⽗⼦关系
docElement.appendChild(lableElement);
docElement.appendChild(titleElement);
docElement.appendChild(textElement);
docElement.appendChild(timeElement);
/
/Element docsElement=(ElementsByTagName("docs").item(0);
//docsElement.appendChild(docElement);
使用dom4j解析xml文件
//保存xml⽂件
TransformerFactory wInstance();
Transformer wTransformer();
DOMSource domSource=new DOMSource(docs);
//设置编码类型
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
StreamResult result=new StreamResult(new FileOutputStream(bFile));
//把DOM树转换为xml⽂件
}
//新建xml⽂件写⼊内容
private static void createXML(String title, String text, String lable, long time, File bFile) throws Exception{ // 1.得到DOM解析器的⼯⼚实例
DocumentBuilderFactory dbf = wInstance();
// 2.从DOM⼯⼚⾥获取DOM解析器
DocumentBuilder db = wDocumentBuilder();
// 3.创建document,即DOM树
Document docs = db.newDocument();
//创建根节点
Element docsElement = ateElement("docs");
docs.appendChild(docsElement);
//创建⼦节点
Element docElement = ateElement("doc");
Element lableElement = ateElement("lable");
Text l = ateTextNode(lable);
lableElement.appendChild(l);//lableElement.setNodeValue(lable);
Element titleElement = ateElement("title");
Text t = ateTextNode(title);
titleElement.appendChild(t);//titleElement.setNodeValue(title);
Element textElement = ateElement("text");
Text x = ateTextNode(text);
textElement.appendChild(x);//textElement.setNodeValue(text);
Element timeElement = ateElement("timemillis");
Text m = ateTextNode(time + "");
timeElement.appendChild(m);//timeElement.setNodeValue(time + "");
//添加⽗⼦关系
docElement.appendChild(lableElement);
docElement.appendChild(lableElement);
docElement.appendChild(titleElement);
docElement.appendChild(textElement);
docElement.appendChild(timeElement);
docsElement.appendChild(docElement);
/
/保存xml⽂件
TransformerFactory wInstance(); Transformer wTransformer();
DOMSource domSource=new DOMSource(docs);
//设置编码类型
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
StreamResult result=new StreamResult(new FileOutputStream(bFile));
//把DOM树转换为xml⽂件
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论