导航:首页 > 网络数据 > dom4j读取大数据xml文件

dom4j读取大数据xml文件

发布时间:2023-05-10 20:19:17

㈠ 如何用DOM4J读取XML文件中的元素值

dom4j中,使制用Element.attributes方法可以获取到节点的属性,而使用elements则可以获取相应的子节点
比如:
Element root = doc.getRootElement();
List attrList = root.attributes();
for (int i = 0; i < attrList.size(); i++) {
//属性的取得
Attribute item = (Attribute)attrList.get(i);
System.out.println(item.getName() + "=" + item.getValue());
}
List childList = root.elements();
for (int i = 0; i < childList.size(); i++) {
//子节点的操作
Element it = (Element) childList.get(i);
//对子节点进行其它操作...
}

java中dom4j解析xml文件怎么获取节点属性

java读取xml节点元素,主要使用java提供的解析xml的工具类亮行SAXParserFactory,如下代码:package xml.xmlreader;import java.io.File;import java.net.URL;import java.util.Properties;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;public class CFGParser {//解析斗升xml文件的工具类 private Properties props; public Properties getProps() { return props; } public void setProps(Properties props) { this.props = props; } public void parse(String filename) throws Exception { CFGHandler handler = new CFGHandler(); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(false); factory.setValidating(false); SAXParser parser = factory.newSAXParser(); URL confURL = super.getClass().getClassLoader().getResource(filename); if (confURL == null) { System.out.println("敬销哗Can't find configration file."); return; } try { parser.parse(confURL.toString(), handler); this.props = handler.getProps(); } finally { factory = null; parser = null; handler = null; } } public void parseFile(String filename) throws Exception { CFGHandler handler = new CFGHandler(); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(false); factory.setValidating(false); SAXParser parser = factory.newSAXParser(); File f = new File(filename); if ((f == null) || (!f.exists())) return; try { parser.parse(f, handler); this.props = handler.getProps(); } finally { factory = null; parser = null; handler = null; } }}package xml.xmlreader;import java.util.Properties;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class CFGHandler extends DefaultHandler{ private Properties props; private String currentSet; private String currentName; private StringBuffer currentValue = new StringBuffer(); public CFGHandler() { this.props = new Properties(); } public Properties getProps() { return this.props; } public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { this.currentValue.delete(0, this.currentValue.length()); this.currentName = qName; } public void characters(char[] ch, int start, int length) throws SAXException { this.currentValue.append(ch, start, length); } public void endElement(String uri, String localName, String qName) throws SAXException { this.props.put(qName.toLowerCase(), this.currentValue.toString().trim()); }}xml文件 6 10 23:00 12:00 18:00jsp获取各个节点的值:

㈢ 如何提取XML文件中的数据

使用SAXReader需要导入dom4j-full.jar包。
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上慎旁找到它。
SAXReader parser=new SAXReader();//dom4j解析器
Reader reader;
try{
reader = new FileReader("文件.xml");
Document doc=parser.read(reader); /梁裂/xml加载document象

Element root=doc.getRootElement(); //按照树思想进行解析
List<Element> list=root.elements();//级元素集合elementIterator()
for(Element ele :list){
List<Element> eles = ele.elements();//取需要TWO属性
// 比较取需宽渣橡要two即

㈣ 在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<Element> 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("完成了!");
}

}

㈤ dom4j读取xml 内存溢出

方法1:myeclips中调整JVM内存:
windows-perferences-java-installed JREs,选择JRE点“Edit”,在“default JVM arguments”中输入“-Xms64m -Xmx512m”

其中-Xms64m表示运行时最小内存为64M,-Xmx512m为运行时最大内存为512M,这两个值根据机器实际情况设置,其中最大内存不碰山可超过机器实际内存

方法2:用sax解颂吵迅析
sax.read(new FileReader(d:/野此xml/a.xml ");

sax.read(new FileInputStream(d:/xml/a.xml ");

㈥ dom4j 读取xml配置文件,哪种效率高一点呢

我最近也在用Dom4j,不过我用的是 Element。
不确定哪种效率更高,用XPath来做 效率应该还行吧

我觉得这些都是较次要的
瓶颈应该是在 读取XML 的IO操作上。

经测试 IO一次,大约耗时1秒多
我的laptop是吵改Core I3 2.27GHz的,升冲判让计算机来多做几次判昌计算是没问题的。个人见解。

㈦ 如何使用dom4j解析多节点的xml文件呢 如下例子

创建File,获取根节点
[java] view plain
/**
* 获取文件的document对象,然后获取对应的根节点
* @author chenleixing
*/
@Test
public void testGetRoot() throws Exception{
SAXReader sax=new SAXReader();//创建一个SAXReader对腊返象
File xmlFile=new File("d:\\test.xml");//根据指首族定的路径创建file对象
Document document=sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束
Element root=document.getRootElement();//获取根节点
this.getNodes(root);//从根节点开始遍历所有节点

}
从指定节点开始,递归遍历所有节点和属性
[java] view plain
/**
* 从指定节点开始,递归遍历所有子节点
* @author chenleixing
*/
public void getNodes(Element node){
System.out.println("--------------------");

//当前节点的名称、文本内容和属性
System.out.println("当前节点名称:"+node.getName());//当前节点名称
System.out.println("当前节点的内容:"+node.getTextTrim());//当前节点名称
List<Attribute> listAttr=node.attributes();//当前节点的所有属性的list
for(Attribute attr:listAttr){//遍历当前节点的所有属性
String name=attr.getName();//属性名称
String value=attr.getValue();//属性的值
System.out.println("属性名称:"+name+"属性值:"+value);
}

//递归遍历当前节点所有的子节点
List<Element> listElement=node.elements();/轮芹饥/所有一级子节点的list
for(Element e:listElement){//遍历所有一级子节点
this.getNodes(e);//递归
}

㈧ Axis中如何通过dom4j获取xml文件中节点的值(不是属性,是节点中间的字符串)

这个很简单,上代肢毕码吧
try {
String strXML = "你的XML字符正洞串";

Document document = DocumentHelper.parseText(strXML);

Node node = document.selectSingleNode('examples/example/examplemain/举饥枯a');
System.out.println(node.getText());

node = document.selectSingleNode('examples/example/examplemain/b');
System.out.println(node.getText());

node = document.selectSingleNode('examples/example/examplemain/c');
System.out.println(node.getText());
} catch (DocumentException ex) {
ex.printStackTrace();
}

㈨ DM4J 解析XML文件

public class Resourceitem {

private String title;

private String keywords;

private String kind;

private String describe;

private String date;

private String url;

/** get ... set ... **/

public static void main(String[] args) {
try {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("明贺消D:/one.xml"));// 加载xml
Element root = document.getRootElement();// 获取根节点
Element element = null;
List<拍绝Resourceitem> resourceitemList = new ArrayList<Resourceitem>();
Resourceitem resourceitem = null;
Field field = null;
for (Iterator i = root.elementIterator(); i.hasNext();) {
element = (Element) i.next();
resourceitem = new Resourceitem();
for (Iterator j = element.elementIterator(); j.hasNext();) {
element = (Element) j.next();
field = Resourceitem.class.getDeclaredField(element
.getQName().getName());
field.setAccessible(true);
field.set(resourceitem, element.getText());
}
resourceitemList.add(resourceitem);
}
System.out.println(resourceitemList.get(0).getTitle());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
楼主激知你的xml 还少了
</resourceitem>

㈩ dom4j如何读取一个xml文件的编码方式

将你Eclipse里的编码方式改成与文件默认的编码方式一样即可。。。

阅读全文

与dom4j读取大数据xml文件相关的资料

热点内容
python所支持的文件格式 浏览:983
gif87a文件 浏览:782
wordstarter2010下载 浏览:803
苹果百分之一的电量 浏览:651
孔的倒角怎么编程 浏览:139
大家用哪个网站找传奇 浏览:462
怎么用qq绑定微信账号密码错误 浏览:461
word文字横版变竖版 浏览:46
js正则表达式整数 浏览:9
dvd视频文件刻录视频dvd 浏览:550
列举四种linux文件系统命令 浏览:348
海尔网站交互功能有哪些 浏览:85
小米手机切换不同网络 浏览:996
xp系统怎样设置开机密码 浏览:604
上传图片伪装为php执行文件 浏览:20
查看数据库的角色 浏览:291
学的计算机编程怎么用专业术语说 浏览:288
appium启动失败 浏览:902
怎么用编程写逆转数 浏览:942
ps关闭图像文件的快捷键 浏览:465

友情链接