百度
360搜索
搜狗搜索

dom4j生成xml,JAVA中如何用DOM4J将一个字符串解析成XML格式详细介绍

本文目录一览: JAVA中如何用DOM4J将一个字符串解析成XML格式

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

a

bcd";

看看

dom4j生成xml会自动添加换行符 ,怎么处理

换行符"\r\n",如是用dom4j之类的jar包操作,dom4j换行如下
/**
* 通过 org.dom4j.io.OutputFormat 来设置XML文档输出格式
*/
OutputFormat format = OutputFormat.createPrettyPrint(); //设置XML文档输出格式
format.setEncoding("GB2312"); //设置XML文档的编码类型
format.setSuppressDeclaration(true);
format.setIndent(true); //设置是否缩进
format.setIndent(" "); //以空格方式实现缩进
format.setNewlines(true); //设置是否换行

怎样应用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);
//获取根节点

元素

Element root = document.getRootElement();

//创建xml文档

Document doc = DocumentHelper.createDocument();

//创建表格的根节点

元素的子节点

元素列表

Iterator iter = root.elementIterator("row");

//循环列表

while(iter.hasNext()) {

//得到每个

元素

Element rowEle=(Element)iter.next();

//创建表格中的行

元素Element rootElement = DocumentHelper.createElement("table");doc.setRootElement(rootElement);//获取根节点

元素Element trElement = rootElement.addElement("tr");//创建表格中行
元素的子元素列

元素
//第一列存储

元素的ballsnum属性值

Element ballsnum = trElement.addElement("td");

ballsnum.addText(rowEle.attributeValue("ballsnum"));

//第二列存储

元素的opentime属性值

Element opentime = trElement.addElement("td");

opentime.addText(rowEle.attributeValue("opentime"));

//第三列存储

元素的opencode属性值

Element opencode = trElement.addElement("td");

opencode.addText(rowEle.attributeValue("opencode"));

//第四列存储

元素的expect属性值

Element expect = trElement.addElement("td");

expect.addText(rowEle.attributeValue("expect"));

}

System.out.println(doc.asXML());

} catch (Exception e) {

e.printStackTrace();

}

}

}

我将

存储在D盘下的test.xml文件中

我读取D盘下的test.xml文件中的xml内容生成了一个表格

System.out.println(doc.asXML());语句将在控制台打印表格内容

打印结果如下:

3 2014-01-19 21:30:00 05,14,16,21,29,30|12 14008
3 2014-01-16 21:30:00 08,10,12,14,18,28|14 14007

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插入子节点,自动生成xmlns=的问题,有谁遇到过,请帮忙解决,谢谢!

要读的xml文件

李华

14


张三

16





Vector students_Vector;
private Vector readXMLFile(String file) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbf.newDocumentBuilder();
Document doc = builder.parse(file); // 获取到xml文件
// 下面开始读取
Element root = doc.getDocumentElement(); // 获取根元素
NodeList students = root.getElementsByTagName_r("学生");
students_Vector = new Vector();
for (int i = 0; i < students.getLength(); i++) {
// 一次取得每一个学生元素
Element ss = (Element) students.item(i);
// 创建一个学生的实例
student stu = new student();
stu.setSex(ss.getAttribute("性别"));
NodeList names = ss.getElementsByTagName_r("姓名");
Element e = (Element) names.item(0);
Node t = e.getFirstChild();
stu.setName(t.getNodeValue());
NodeList ages = ss.getElementsByTagName_r("年龄");
e = (Element) ages.item(0);
t = e.getFirstChild();
stu.setAge(Integer.parseInt(t.getNodeValue()));
students_Vector.add(stu);
}
return students_Vector;
}
参照这个写
这个问题是许多初次使用dom4j生成xml文件时可能都会遇到的问题,也是在定义缺省名称空间时遇到的常见问题,解决的办法其实也很简单:如果你要为某个元素节点上定义一个缺省的名称空间,可直接在定义元素element的时候就应该为其指定一个不带前缀的名称空间,如:
element.addElement(name,url);//name为你的新定义元素节点名,URL就是你的名称空间。
当然,一般更多的是在根元素上定义缺省的名称空间,此时定义格式如下:
Element root=document.addElement(name,url);//name为你的新定义元素节点名,URL就是你的名称空间。
特别注意:不要通过类似于element.addNamspace("",url)这样的方式来为某个元素节点指定缺省名称空间,这样的做法就会出现你说描述的上述问题。

【求助】Dom4j 生成xml,节点增加属性时,属性值中有特殊字符,如何做到不转义

我通过Dom4j读取file节点的append属性值的时候,当该节点没有设置append的值,读取的数据为空,但我想当没有显示声明值的时候,读取到的是xsd文件中设置的默认值,有人做过类
setEscapeText(false) 只是能改变 escapeElementEntities(String st) 中的参数,主要能改变文本里面如:

aaaa>bbbb
中aaaa>bbbb的中的>不转变

对于Attribute 里面的特殊字符,我查了好久的原码发现人家里面是从

protected void writeEscapeAttributeEntities(String txt) throws IOException {

if (txt != null) {

String escapedText = escapeAttributeEntities(txt);

writer.write(escapedText);

}

}//(在XMLWriter类中第1174行)

里面有个 escapeAttributeEntities(txt); 这个是专门用来转变Attribute 里面的特殊字符的,

所以要想解决这个问题,我是用了继承,写了一个

public class MyXMLWriter extends XMLWriter {

......

protected void writeEscapeAttributeEntities(String txt) throws IOException {

if (txt != null) {

//String escapedText = escapeAttributeEntities(txt);

writer.write(txt);

}

}

.......

}

直接注释了原码中的//StringescapedText=escapeAttributeEntities(txt);

就完美解决了。

如何去掉用dom4j生成的XML文档中的

根据你所遇到的情况,有几种可能的办法: 一、读入的或从别的应用/模块/接口得到的xml原始文件/流/字符串: 去掉第一行,或者搜出这段PI指令,滤掉。 二、读入的或从别的应用/模块/接口获得的xml,已经解析为dom object: 获得root element,detach,就可以把根节点从document对象上摘了下来。 剩下的只是一个普通的element,得到其xml 表现形式即可。 三、自己生成的dom对象: 不生成document对象即可

如何采用dom4j 循环增加xml节点,如下格式for循环取数据,循环一次创建一个xyList节点?

import java.util.*; import org.dom4j.*; public class testxml { public static void main(String[] args) { String xml = "

" + "

" + "

" + "

" + "

" + "

" ; try { //生产doc文档 Document doc = DocumentHelper.parseText(xml); //得到根节点 Element root = doc.getRootElement(); //得到根节点下的chapter节点 List elements = root.elements("chapter"); //遍历chapter节点 Iterator iterator = elements.iterator(); while(iterator.hasNext()){ Element e = (Element)iterator.next(); String id = e.attributeValue("id"); //如果id==1 则添加新的节点 if("1".equals(id) || "1" == id){ //新添加的节点 Element enew = e.addElement("chapterNew"); //添加属性和值 enew.addAttribute("id", "1.1"); enew.addAttribute("name", "a.1"); } } //打印 System.out.println(doc.asXML()); } catch (DocumentException e) { e.printStackTrace(); } } }

dom4j生成xml文件时总是报系统找不到路径,不知道怎么解决

专业的话 至少贴个代码出来或者截图吧,哥们?
一般你生成xml文件的时候,肯定需要在代码中这样操作:
//将生成的xml文件保存在"F:/text.xml"文件中
FileWriter fw = new FileWriter("F:/text.xml");
你肯定是缺少有效路径。
代码总汇一下:
//将生成的xml文件保存在"F:/text.xml"文件中
FileWriter fw = new FileWriter("F:/text.xml");
fw.write(document.asXML());
fw.flush();
fw.close();

少长咸集

© 2025 Copyright Your WebSite.Some Rights Reserved.

Powered By Theme By


阅读更多 >>>  jsp转换器,jsp是什么

网站数据信息

"dom4j生成xml,JAVA中如何用DOM4J将一个字符串解析成XML格式"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:dom4j生成xml,JAVA中如何用DOM4J将一个字符串解析成XML格式的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!