百度
360搜索
搜狗搜索

dom4j生成xml文件,如何去掉用dom4j生成的XML文档中的详细介绍

本文目录一览: 怎样应用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

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插入子节点,自动生成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)这样的方式来为某个元素节点指定缺省名称空间,这样的做法就会出现你说描述的上述问题。

在JAVA web项目中,如果用dom4j来操作xml文件,应该怎么写SAXReader.read(“路径”),这个路径该怎么写

可以参考 :
package com.zuxia.dom4j;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
*
* 使用dom4j解析xml
*
* 1. 创建解析器
*
* 2. 创建文档对象Document
*
* 3. 获取根节点
*
*/
public class Dom4jParseXML {
public static void main(String[] args) {

//1. 创建解析器
SAXReader saxreader = new SAXReader();

Document doc = null;
try {
//2. 创建文档对象Document
doc = saxreader.read(new File("src/studentinfo.xml"));
} catch (Exception e) {
System.out.println("读取xml文件异常!");
}

//3. 获取根节点
Element root = doc.getRootElement();

//4. 获取元素
Iterator

iter = root.elementIterator();

while(iter.hasNext()){

Element student = iter.next();

System.out.println("学号:"+student.attributeValue("stuno")+"\t姓名:"+student.elementText("name"));

}

//提示用户添加新的数据

Scanner sc = new Scanner(System.in);

System.out.println("请输入学号:");

String stuno = sc.nextLine();

System.out.println("请输入姓名:");

String name = sc.nextLine();

System.out.println("请输入年龄:");

String age = sc.nextLine();

//将数据添加在Document中

Element student = root.addElement("student");

student.addAttribute("stuno", stuno);

student.addElement("name").addText(name);

student.addElement("age").addText(age);

//3. 设置格式

OutputFormat format = OutputFormat.createCompactFormat();

format.setIndentSize(4);

format.setNewlines(true);

try {

//4. 保存xml文件

XMLWriter out = new XMLWriter(new FileOutputStream("src/studentinfo.xml"),format);

out.write(doc);

System.out.println("ok!!!");

} catch (Exception e) {

System.out.println("失败!");

}

System.out.println("完成了!");

}

}

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读取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文件时总是报系统找不到路径,不知道怎么解决

专业的话 至少贴个代码出来或者截图吧,哥们?
一般你生成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();

我用dom4j创建了一个xml文档,没有错误,但运行没有结果,哪位高手指点一下

public class HostIP {
private static void changeXML(String location) {

String hostip = "192.168.0.1";
//创建docunment对象
Document document = DocumentHelper.createDocument();
//创建根节点
Element hostIPElement = document.addElement("HostIP");
hostIPElement.setText(hostip);
try {
//new FileWriter(new File("HostIP.xml")), 没用你的写法
FileOutputStream fileOutputStream = new FileOutputStream(location);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream,"UTF-8");
OutputFormat fmt = OutputFormat.createPrettyPrint();
fmt.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(outputStreamWriter,fmt);
writer.write(document);
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
//传保存路径
String location = "C:/test/HostIP.xml";
changeXML(location);
}
}
这个是我比着你的改的,可以用。你看看吧
晕,main()方法都没有怎么运行
1 最后一个括号前加入
public static void main(String args[])
{
new HostIP().changeXML();
}
2 你的程序里就没有输出语句加入main()方法你也看到的是白的
想看结果加入
System.out.println(document.asXML());
其实你应该生成了的,你刷新试一下,或者文件路径写成绝对路径。

少长咸集

© 2025 Copyright Your WebSite.Some Rights Reserved.

Powered By Theme By


阅读更多 >>>  电脑xml文件怎么打开,xml文件怎么打开

网站数据信息

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