java如何向xml文件写入内容?
我以前学dom解析的时候写了一个小例子,你参考参考
package com.lhx.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
public class Test {
public static void main(String[] args) {
DocumentBuilderFactory fct=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder bui=fct.newDocumentBuilder();
Document doc=bui.newDocument();
Element ps=doc.createElement(“persons”);
Element p1=doc.createElement(“person”);
Element p2=doc.createElement(“person”);
Attr id1=doc.createAttribute(“id”);
Attr id2=doc.createAttribute(“id”);
id1.setNodeValue(“1”);
id2.setNodeValue(“2”);
Element name1=doc.createElement(“name”);
Text na1=doc.createTextNode(“龙大哥”);
Element name2=doc.createElement(“name”);
Text na2=doc.createTextNode(“龙大爷”);
Element sex1=doc.createElement(“sex”);
Text se1=doc.createTextNode(“帅哥”);
Element sex2=doc.createElement(“sex”);
Text se2=doc.createTextNode(“妹子”);
doc.appendChild(ps);
ps.appendChild(p1);
p1.appendChild(name1);
p1.setAttributeNode(id1);
name1.appendChild(na1);
p1.appendChild(sex1);
sex1.appendChild(se1);
ps.appendChild(p2);
p2.appendChild(name2);
p2.setAttributeNode(id2);
name2.appendChild(na2);
p2.appendChild(sex2);
sex2.appendChild(se2);
try {
FileOutputStream fos=new FileOutputStream(new File(“E:/longdada.xml”));
try {
((org.apache.crimson.tree.XmlDocument)doc)
.write(fos);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fos.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
附图:
这个例子有文本节点的创建,属性的创建等等,基本上可以解决绝大多数XML内容了。无论你想创建什么类型的XML,可以套用里面的方法。
另外,注意:文件通过流创建的时候用到一个类,需要一个jar,这个类我已经用完整形式写出来了,你去网上下载下来,添加进工程即可。
弱国觉得可行,望采纳^_^
java写多个xml到文件,
你可以使用Java的Transformer API实现这一目的。 Transformer API(javax.xml.transform)提供了将XML文档转换为其他格式(如HTML、PDF、TEXT等)或保存为文件的功能。你可以使用Transformer API创建多个Transformer实例,并使用不同的Transfomer实例将多个XML文档写入单个或多个文件中。
java中,怎么将一组数据写入xml文件中?
有很多种方法,用DOM或SAX, 还有JAXB等。下面给个DOM写的例子:
java使用DOM创建如下xml:
?xml version=”1.0″ encoding=”UTF-8″ standalone=”no”?
root
name id=”2″zs/name
/root
代码如下:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
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.Text;
public class CreateXML {
public static void main(String[] args) throws Exception {
//实例化解析器
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
//创建Document对象
Document doc = builder.newDocument();
//创建XML文件所需的各种对象并序列化
Element root = doc.createElement(“root”);
Element name = doc.createElement(“name”);
Text nameText = doc.createTextNode(“zs”);
name.appendChild(nameText);
root.appendChild(name);
doc.appendChild(root);
name.setAttribute(“id”, “2”);
doc2XmlFile(doc,”test.xml”);
}
public static boolean doc2XmlFile(Document document, String filename) {
boolean flag = true;
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/** 编码 */
// transformer.setOutputProperty(OutputKeys.ENCODING, “GB2312”);
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
transformer.transform(source, result);
} catch (Exception ex) {
flag = false;
ex.printStackTrace();
}
return flag;
}
}
java 怎么将数据动态的写入xml
只是数据动态写入xml,如果是不求Schema,只要保存为XML即可,
那不用写了,JDK中有,这样做:
XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream( ( (
OutputStream) (new FileOutputStream(filename)))));
encoder.writeObject(list);
encoder.close();
java中如何写xml
呵呵,你这个问题,其实写XML很简单的,氛围以下几步:1.导入DOM4J包,在此我使用dom4j来做。2.创建dom4j的实例:Document document = DocumentHelper.createDocument();3.一级一级的添加节点或者属性,这个具体参照dom4j帮助:Element rootGen = document.addElement(“root”);4.定义以下3个对象,然后进行操作: Writer writer = null;
OutputFormat format = null;
XMLWriter xmlwriter = null; ***********************************************************************************附上代码: public void CreateXMl(StudentBean sn){
//创建document对象
Document document = DocumentHelper.createDocument();
//定义根节点Element
Element rootGen = document.addElement(“root”);
//定义根节点ROOT的子节点们
Element nameGen = rootGen.addElement(“Name”);
nameGen.addAttribute(“name”, “我是中文”);
Element ageGen = rootGen.addElement(“Age”);
Element addrGen = rootGen.addElement(“Address”);
Writer writer = null;
OutputFormat format = null;
XMLWriter xmlwriter = null;
//将定义好的内容写入xml文件中
try {
//使用这个writer也可以,只不过遇到中文会乱码哦
// writer = new FileWriter(“d:/test.xml”);
//进行格式化
format = OutputFormat.createPrettyPrint();
//设定编码
format.setEncoding(“UTF-8”);
xmlwriter = new XMLWriter(new FileOutputStream(“d:/test.xml”), format);
xmlwriter.write(document);
xmlwriter.flush();
xmlwriter.close();
System.out.println(“———–Xmlfile successfully created————-“);
} catch (Exception e) {
e.printStackTrace();
System.out.println(“———–Exception occured during of create xmlfile ——-“);
}
}