dom4j生成xml字符串(DOM4J 解析XML字符串)

2023-06-09 04:00:02 86

dom4j生成xml字符串(DOM4J 解析XML字符串)

本文目录

DOM4J 解析XML字符串


package com.sun;

import java.io.File;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4jTest {

public void fun() {
File file = new File(“d:\\toRead.xml“);
//用SAXReader来加载xml文件
SAXReader saxReader = new SAXReader();
//获取xml文件的Document对象
Document document = saxReader.read(file);
//获得Document对象的根节点,就是UFIDA-FAHON-WebService节点
Element rootElement = document.getRootElement();
//list 里面装的就是你的xml文件根节点的所有子节点,就是所有的U8ArrivalVouch节点
List《Element》 list = rootElement.elements();
//增强for循环来遍历所有的U8ArrivalVouch节点
for (Element element : list) {
//待处理内容,可以继续用elements()方法继续获得所有的子节点
;
}
}

}

java dom4j生成xml字符串是怎么设置编码


/** 将document中的内容写入文件中 */
OutputFormat outputFormat = new OutputFormat();
outputFormat.setEncoding(“UTF-8“);
XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)),outputFormat);
writer.write(document);
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;

怎样应用Dom4j对自动化生成的XML文件进行解析


是的,dom4j既可以解析xml文档,也可以创建xml文档。使用dom4j必须导入dom4j的jar包。
以下是用dom4j来解析xml文件生成另一个xml文档的过程,我在这里只是将新生成的xml的文档打印,dom4j也可以新生成的xml的文档保存到磁盘。
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class DomTest {
/**
* @param args
*/
public static void main(String args) {
try {
//读取xml文件信息
File inputXml=new File(“D:/test.xml“);
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(inputXml);
//获取根节点《xml》元素
Element root = document.getRootElement();
//创建xml文档
Document doc = DocumentHelper.createDocument();
//创建表格的根节点《table》元素
Element rootElement = DocumentHelper.createElement(“table“);
doc.setRootElement(rootElement);
//获取根节点《xml》元素的子节点《row》元素列表
Iterator iter = root.elementIterator(“row“);
//循环列表
while(iter.hasNext()) {
//得到每个《row》元素
Element rowEle=(Element)iter.next();
//创建表格中的行《tr》元素
Element trElement = rootElement.addElement(“tr“);
//创建表格中行《tr》元素的子元素列《td》元素
//第一列存储《row》元素的ballsnum属性值
Element ballsnum = trElement.addElement(“td“);
ballsnum.addText(rowEle.attributeValue(“ballsnum“));
//第二列存储《row》元素的opentime属性值
Element opentime = trElement.addElement(“td“);
opentime.addText(rowEle.attributeValue(“opentime“));
//第三列存储《row》元素的opencode属性值
Element opencode = trElement.addElement(“td“);
opencode.addText(rowEle.attributeValue(“opencode“));
//第四列存储《row》元素的expect属性值
Element expect = trElement.addElement(“td“);
expect.addText(rowEle.attributeValue(“expect“));
}
System.out.println(doc.asXML());
} catch (Exception e) {
e.printStackTrace();
}
}
}
我将
《?xml version=“1.0“ encoding=“UTF-8“?》
《xml》
《row ballsnum=“3“ opentime=“2014-01-19 21:30:00“ opencode=“05,14,16,21,29,30|12“ expect=“14008“/》
《row ballsnum=“3“ opentime=“2014-01-16 21:30:00“ opencode=“08,10,12,14,18,28|14“ expect=“14007“/》
《/xml》
存储在D盘下的test.xml文件中
我读取D盘下的test.xml文件中的xml内容生成了一个表格
System.out.println(doc.asXML());语句将在控制台打印表格内容
打印结果如下:
《?xml version=“1.0“ encoding=“UTF-8“?》
《table》
《tr》
《td》3《/td》
《td》2014-01-19 21:30:00《/td》
《td》05,14,16,21,29,30|12《/td》
《td》14008《/td》
《/tr》
《tr》
《td》3《/td》
《td》2014-01-16 21:30:00《/td》
《td》08,10,12,14,18,28|14《/td》
《td》14007《/td》
《/tr》
《/table》

dom4j创建xml文档


dom4j 的 XMLWriter 现在还不支持standalone, 你可以重写(override)其 writeDeclaration 方法:
public class StandaloneWriter extends XMLWriter {
protected void writeDeclaration() throws IOException {
OutputFormat format = getOutputFormat();
String encoding = format.getEncoding();
if (!format.isSuppressDeclaration()) {
writer.write(“《?xml version=\“1.0\““);
if (!format.isOmitEncoding()) {
if (encoding.equals(“UTF8“))
writer.write(“ encoding=\“UTF-8\““);
else
writer.write(“ encoding=\““ + encoding + “\““);
}
writer.write(“ standalone=\“true\““);
writer.write(“?》“);
if (format.isNewLineAfterDeclaration()) { println(); }
}
}
}

JAVA读取文件信息生成XML文件


dom4j生成xml方法:
import java.io.*;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class XmlTest {
/**
* @param args
*/
public static void main(String args) {
try {
File file=new File(“D:/“);
File files=file.listFiles();
File xmlfile=new File(“D:/fileInfo.xml“);
if(xmlfile.exists()){
xmlfile.createNewFile();
}
FileOutputStream fos = new FileOutputStream(xmlfile);
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(“gbk“);
XMLWriter writer = new XMLWriter(fos,format);
Document doc = DocumentHelper.createDocument();
Element rootElement = DocumentHelper.createElement(“root“);
rootElement.addAttribute(“version“, “2.0“);
doc.setRootElement(rootElement);
for(int i=0;i《files.length;i++){
if(files[i].isFile()){
Element fileElement = rootElement.addElement(“file“);
Element nameElement = fileElement.addElement(“name“);
nameElement.addText(files[i].getName().substring(0, files[i].getName().indexOf(“.“)));
Element lengthElement = fileElement.addElement(“length“);
lengthElement.addText(Long.toString(files[i].length()));
Element cssElement = fileElement.addElement(“css“);
cssElement.addText(files[i].getName().substring(files[i].getName().indexOf(“.“)+1));

}
}
writer.write(doc);
} catch (IOException e) {
e.printStackTrace();
}
}
}
执行代码之后,将D盘下面生成一个名为fileInfo.xml的xml文件,将D盘下面原有的所有文件的信息保存在xml文件之中。
生成的fileInfo.xml的内容格式为:
《?xml version=“1.0“ encoding=“gbk“?》
《root version=“2.0“》
《file》
《name》lianliankan_92368《/name》
《length》2035066《/length》
《css》exe《/css》
《/file》
《file》
《name》问题《/name》
《length》487《/length》
《css》txt《/css》
《/file》
《/root》
name为文件名称,length为文件大小,css为文件格式。

JAVA中如何用DOM4J将一个字符串解析成XML格式


用:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document doc = factory.newDocumentBuilder().parse(new ByteArrayInputStream(xmlStr.getBytes()));
试试。

用dom4j生成xml文件以字符串输出的问题


楼主的问题应该在于如何创建出指定格式的format
打开dom4j的文档查看OutputFormat类
该类其实提供了2个static方法,返回一个outputFormat对象
createCompactFormat() 返回的outputForamt的格式为压缩,即空格,回车等都被忽略了
createPrettyPrint() 这个方法返回的outputFormat的格式则为良好格式
因为在html语言中,大家书写都喜欢换行和缩进,保持良好的书写习惯,当在xml语言中空格和换行都作为原始内容被处理,即空格和换行对应也是一个对象
所以 Document doc = DocumentHelper.parseText(str);
这段代码在解析的时候并没有针对空格和换行进行操作
OutputFormat针对此专门提供了2个satic方法来获得对应的格式
document的asXML方法的源码中new出的outputFormat其实是一个空的格式
以上分析仅为个人看法,毕竟我不是dom4j的开发人员,如有错误,请指正
以下为相关代码:
import java.io.StringWriter;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class Demo {
public static void main(String args) throws Exception {

String str = “《file》“+
“《chapter id=\“1\“ name=\“a\“/》“ +
“《chapter id=\“2\“ name=\“b\“/》“ +
“《chapter id=\“3\“ name=\“c\“/》“ +
“《chapter id=\“4\“ name=\“d\“/》“ +
“《/file》“;

// 将字符串格式转换成document对象
Document document = DocumentHelper.parseText(str);

// 注意,用这种方式来创建指定格式的format
OutputFormat format = OutputFormat.createPrettyPrint();

// 创建String输出流
StringWriter out = new StringWriter();

//包装String流
XMLWriter writer = new XMLWriter(out, format);

// 将当前的document对象写入底层流out中
writer.write(document);
writer.close();
System.out.println(out.toString());
}
}

dom4j生成xml字符串(DOM4J 解析XML字符串)

本文编辑:admin

更多文章:


云计算架构师是干嘛的(云计算软件开发工程师是干什么的)

云计算架构师是干嘛的(云计算软件开发工程师是干什么的)

大家好,云计算架构师是干嘛的相信很多的网友都不是很明白,包括云计算软件开发工程师是干什么的也是一样,不过没有关系,接下来就来为大家分享关于云计算架构师是干嘛的和云计算软件开发工程师是干什么的的一些知识点,大家可以关注收藏,免得下次来找不到哦

2024年7月14日 16:25

grep正则表达式数字(正则表达式相关:grep和正则表达式有什么关系或联系或者说grep是什么常看到…)

grep正则表达式数字(正则表达式相关:grep和正则表达式有什么关系或联系或者说grep是什么常看到…)

本文目录正则表达式相关:grep和正则表达式有什么关系或联系或者说grep是什么常看到…shell (e)grep正则表达式问题grep正则表达式正则表达式判断字符串中包含数字,大写字符,小写字母,特殊符号中的几种怎么判断grep匹配正则表

2023年8月29日 23:00

网站架构设计(高端网站架构页面设计需要掌握哪些内容)

网站架构设计(高端网站架构页面设计需要掌握哪些内容)

各位老铁们,大家好,今天由我来为大家分享网站架构设计,以及高端网站架构页面设计需要掌握哪些内容的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录高端网

2024年7月10日 03:50

node video(用node.js怎么将采集到的视频实时的发送出去)

node video(用node.js怎么将采集到的视频实时的发送出去)

本文目录用node.js怎么将采集到的视频实时的发送出去nodeovideo特效在哪求分享 avs video editor 破解版视频剪辑软件哪个好用用node.js怎么将采集到的视频实时的发送出去你的C++返回指针是没用的,你需要在C+

2024年5月23日 15:04

jsp需要学吗(如何学习jsp建议现在学习jsp,在学习的时候要注意什么,给点建)

jsp需要学吗(如何学习jsp建议现在学习jsp,在学习的时候要注意什么,给点建)

各位老铁们,大家好,今天由我来为大家分享jsp需要学吗,以及如何学习jsp建议现在学习jsp,在学习的时候要注意什么,给点建的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,

2024年7月13日 07:40

史上最难英语单词(英语是世上最难学的语言吗)

史上最难英语单词(英语是世上最难学的语言吗)

本文目录英语是世上最难学的语言吗你觉得英语哪方面最难你会相信单词速记法这种东西吗为什么为什么英语成绩差背单词太“难”了,史上最强单词记忆法对中国人来说,最难学的外语是不是英语为什么外国人都说,中文是全世界最难的语言英语是世上最难学的语言吗不

2024年6月28日 12:20

类选择器是不是jquery选择器(请教jquery中class选择器)

类选择器是不是jquery选择器(请教jquery中class选择器)

本文目录请教jquery中class选择器JQuery之选择器请教jquery中class选择器在html的规范中,id是一个元素在整个源代码中独一无二的属性,而class做为css选择器,是为元素增加样式的手段,那么例如下面的结构:《di

2024年5月8日 09:30

eohs是什么意思(eo是什么意思)

eohs是什么意思(eo是什么意思)

本文目录eo是什么意思衣服标签上的eo是什么意思eo是什么意思eo指EO核心价值观。EO创业家协会在1987年以YEO(青年创业家协会)为原型, 创立是全球首屈一指的创业家协会,作为一家非盈利机构EO有超过9500名会员,131个分会,分布

2024年7月9日 03:38

php 获取当前时间戳(PHP中time获取时间戳为当前时间,它是格林威治时间还是本地时间)

php 获取当前时间戳(PHP中time获取时间戳为当前时间,它是格林威治时间还是本地时间)

本文目录PHP中time获取时间戳为当前时间,它是格林威治时间还是本地时间php怎么获取今天零点的时间戳PHP获取时间戳类怎么写thinkphp如何在控制器里面获取当前时间戳php保存当前时间如何通过PHP函数来获取今日日期的时间戳PHP中

2024年5月13日 07:38

吃了舍曲林之后更想死(饭前吃的盐酸舍曲林片,现在胃痛的要死,生不如死,有什么办法缓解,专家进来,只要能帮我,悬赏分全都给你)

吃了舍曲林之后更想死(饭前吃的盐酸舍曲林片,现在胃痛的要死,生不如死,有什么办法缓解,专家进来,只要能帮我,悬赏分全都给你)

这篇文章给大家聊聊关于吃了舍曲林之后更想死,以及饭前吃的盐酸舍曲林片,现在胃痛的要死,生不如死,有什么办法缓解,专家进来,只要能帮我,悬赏分全都给你对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录饭前吃的盐酸舍曲林片,现在胃痛

2024年7月6日 19:05

数据仓库有哪五层架构(典型的数据仓库系统包括哪几部分)

数据仓库有哪五层架构(典型的数据仓库系统包括哪几部分)

本文目录典型的数据仓库系统包括哪几部分数据仓库的体系结构如何分别实现什么功能教你轻松掌握数据仓库的规划和构建策略说说数仓(3) - 数仓架构数据仓库的系统结构通常包括四个层次,分别是数据源、(  )、前端工具大数据平台架构有哪些大数据多层技

2024年7月8日 20:45

vue开发自适应网站(Vue项目屏幕自适应)

vue开发自适应网站(Vue项目屏幕自适应)

本文目录Vue项目屏幕自适应vue3.0+vite实现移动端自适应布局vue给的1360的图怎么写页面做到自适应vue自适应pc端界面Vue项目屏幕自适应 /build/util.js: a、在cssLoader对象下面添加一个px

2024年7月22日 05:56

编写一个简单的导航菜单(如何制作一个导航栏)

编写一个简单的导航菜单(如何制作一个导航栏)

本文目录如何制作一个导航栏利用javascript编写一个简单的网站导航菜单急求用HTML,CSS做一个简单导航菜单C语言编程做一个简单的菜单c#窗体导航栏怎么做用什么控件实现 具体点想要做一个导航菜单如何制作一个导航栏《!DOCTYPE

2024年7月21日 23:58

375度算发烧吗(多少度算发烧吗)

375度算发烧吗(多少度算发烧吗)

本文目录多少度算发烧吗人的体温多少度算发烧多少度以上算发烧多少度是发烧啊体温多少度才算发烧啊多少度算是发烧什么才是低烧人的正常体温是多少呢到了多少度才算发烧体温多少算发烧,多少是正常多少度算发烧吗正常成人体温是36到37度之间,一旦超过37

2024年5月7日 17:58

excel ubound(请问excelVBA中怎样实现)

excel ubound(请问excelVBA中怎样实现)

本文目录请问excelVBA中怎样实现Excel函数字符公式求助EXCEL 嵌套循环宏语句Excel 宏的制作请问excelVBA中怎样实现考虑到字典KEY值具有唯一性的去重功能,现提供一个字典的解决方案,希望对您有帮助。如果只是有个工作表

2024年7月7日 14:25

mfc指的是什么?mfc是什么

mfc指的是什么?mfc是什么

本文目录mfc指的是什么mfc是什么mfc指的是什么MFC,英文全称为Macro-Fibre Composite(宏观纤维复合材料),是一种柔韧性的压电材料。MFC同压电陶瓷(PZT)一样,当电压作用于MFC时,MFC会随电压和频率的变化产

2024年6月30日 13:16

91成品短视频app推荐(成品短视频软件推荐知乎)

91成品短视频app推荐(成品短视频软件推荐知乎)

本文目录成品短视频软件推荐知乎91app小米无法连接网络看了么成品短视频app推荐91app的会员充值不到账短视频app有哪些91轻量版怎么打不开了服务器无响应91app安卓手机怎么安装成品短视频软件推荐知乎小视频软件前五名推荐:快手、西瓜

2024年7月18日 06:37

appletree歌词(Appletree Man 歌词)

appletree歌词(Appletree Man 歌词)

本文目录Appletree Man 歌词appletree的英文歌翻译是什么麦当劳放的儿歌叫什么苹果树 英文 歌词熊出没主题曲(我还有点小糊涂) 歌词求 White Apple Tree - Snowflakes的歌词和中文对照Applet

2024年7月5日 21:09

validator属性(formValidator中的RegexValidator属性regexp有哪些参数啊)

validator属性(formValidator中的RegexValidator属性regexp有哪些参数啊)

各位老铁们,大家好,今天由我来为大家分享validator属性,以及formValidator中的RegexValidator属性regexp有哪些参数啊的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是

2024年7月13日 20:31

jquery下载文件进度(怎么用JQuery显示一个进度条来显示PHP复制文件的进度)

jquery下载文件进度(怎么用JQuery显示一个进度条来显示PHP复制文件的进度)

大家好,今天小编来为大家解答以下的问题,关于jquery下载文件进度,怎么用JQuery显示一个进度条来显示PHP复制文件的进度这个很多人还不知道,现在让我们一起来看看吧!本文目录怎么用JQuery显示一个进度条来显示PHP复制文件的进度j

2024年7月23日 12:35

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索