利用dom4j生成带dom的xml文件
2013-08-26 16:06
423 查看
直接利用dom4j生成的xml是不带dom头的,但需要应用中需要带dom头的xml文件,比如fusionchart在加载xml数据文件时 ,要求数据文件为带dom头的xml,下面代码示例如何生成带dom头的xml。
public static Document createDom(Map<String,List> data){
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("graph");
root.addAttribute("caption", "xxx");
// root.addAttribute("decimalPrecision", "xxx");
// root.addAttribute("rotateNames", "xxx");
int colorIndex = 0;
for(Map.Entry<String,List> entry:data.entrySet()){
Element set = root.addElement("set");
set.addAttribute("name", entry.getKey());
set.addAttribute("value",(String)(entry.getValue()).get(0));
set.addAttribute("color", ColorUtil.colorList[colorIndex++]);
}
return doc;
}
public static void writeXmlWithBom(String parentPath,Document doc,String fileName){
try {
String filePath = parentPath+File.separator+fileName+".xml";
String tempFileName = parentPath+File.separator+"temp.xml";
File tempFile = new File(tempFileName);
if(tempFile.exists()){
tempFile.delete();
}
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter
writer = new XMLWriter(new FileOutputStream(tempFileName), format);
writer.write(doc);
writer.close();
FileOutputStream fops = new FileOutputStream(fileName);
//首先添加三个bom头字节
fops.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF});
FileWriter fileWriter = new FileWriter(fileName, true);
//使用自己流进行读文件,可以防止中文乱码
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(tempFileName)));
String data ="";
while((data = br.readLine())!=null){
fileWriter.write(data);
fileWriter.write("\r\n");
}
fops.close();
br.close();
fileWriter.close();
tempFile.delete();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
需要注意字节流和字符流的使用,防止出现中文乱码
public static Document createDom(Map<String,List> data){
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("graph");
root.addAttribute("caption", "xxx");
// root.addAttribute("decimalPrecision", "xxx");
// root.addAttribute("rotateNames", "xxx");
int colorIndex = 0;
for(Map.Entry<String,List> entry:data.entrySet()){
Element set = root.addElement("set");
set.addAttribute("name", entry.getKey());
set.addAttribute("value",(String)(entry.getValue()).get(0));
set.addAttribute("color", ColorUtil.colorList[colorIndex++]);
}
return doc;
}
public static void writeXmlWithBom(String parentPath,Document doc,String fileName){
try {
String filePath = parentPath+File.separator+fileName+".xml";
String tempFileName = parentPath+File.separator+"temp.xml";
File tempFile = new File(tempFileName);
if(tempFile.exists()){
tempFile.delete();
}
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter
writer = new XMLWriter(new FileOutputStream(tempFileName), format);
writer.write(doc);
writer.close();
FileOutputStream fops = new FileOutputStream(fileName);
//首先添加三个bom头字节
fops.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF});
FileWriter fileWriter = new FileWriter(fileName, true);
//使用自己流进行读文件,可以防止中文乱码
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(tempFileName)));
String data ="";
while((data = br.readLine())!=null){
fileWriter.write(data);
fileWriter.write("\r\n");
}
fops.close();
br.close();
fileWriter.close();
tempFile.delete();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
需要注意字节流和字符流的使用,防止出现中文乱码
相关文章推荐
- 利用dom4j生成带dom的xml文件
- java利用dom4j对输入的任意对象生成xml文件
- 利用dom4j来生成xml文件
- java语言连接mysql数据库并利用XML解析工具DOM生成XML文件,然后利用DOM SAX对所生成XML文件里的详细信息进行解析
- 利用dom4j来生成xml文件
- java利用dom4j对输入的任意对象生成xml文件
- dom4j为生成XML的文件添加xmlns属性
- ANDROID笔记:利用XML布局文件生成Menu
- 利用Delphi中的TxmlDocument生成xml文件应注意的问题
- 利用kxml2包生成xml文件
- 黑马程序员_王康 java利用DOM4J解析XML文件
- xml生成、解析的四种方式,dom、sax、dom4j、jdom
- xml文件操作(利用dom4j)
- dom4j 为生成 XML 的文件添加 xmlns(命名空间) 属性
- 使用Dom生成xml文件和解析xml文件
- 使用DOM生成XML的文件属性名和属性值、节点名和节点值
- 利用apktool将APK反编译,生成程序的图片、XML配置、语言资源等文件
- dom4j生成和解析xml文件
- DOM、SAX、DOM4J、JDOM、StAX生成XML并返回XML字符串形式
- Java自定义生成与解析(Dom4J)XML文件