百度
360搜索
搜狗搜索

dom4j解析xml步骤,Java里面怎么解析xml文件的内容详细介绍

本文目录一览: 在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里面怎么解析xml文件的内容

java解析Xml文件的标准范例:
File f = new File(System.getProperty("user.dir") + File.separator
+ "src/userfile.xml");// 定位文件
reader = new SAXReader();
try {
doc = reader.read(f);// 读取文件
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();// 得到根节点
Element connect = root.element("connect");// 取得connect节点
Element user = root.element("user");// 取得user节点
Element ipEle = connect.element("ip");// 取得ip节点
Element portEle = connect.element("port");// 取得ip节点
Element nameEle = user.element("name");// name
Element dirEle = user.element("dir");// dir
String ip = ipEle.getText();// ip
String port = portEle.getText();
String name = nameEle.getText();
String dir = dirEle.getText();
Java解析xml代码,我是用dom4j读取的,
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4JReader {
public Dom4JReader() {
}
/**
*
* @Function 获取xml文件里符合要求的数据
*/
public void getDom() {
SAXReader sr = new SAXReader();
try {
//获取applicationContext.xml文件的对象
Document doc = sr.read(new File("applicationContext.xml"));
//获得跟节点
Element root = doc.getRootElement();
//// 枚举所有子节点
for (Iterator i = root.elementIterator("bean"); i.hasNext();) {
//获取bean节点
Element bean = (Element) i.next();
// 枚举名称为bean的节点
for (Iterator j = bean.attributeIterator(); j.hasNext();) {
//获取bean节点的所有属性
Attribute attr = (Attribute) j.next();
//判断属性的值如果为fileUploadBo
if (attr.getText().equals("fileUploadBo")) {
//打印出这个bean节点的所有信息
System.out.println(bean.asXML());
}
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
这段代码要执行的话,要导入dom4j的包,还有
//获取applicationContext.xml文件的对象
Document doc = sr.read(new File("applicationContext.xml"));
在src下有这个xml文件。

阅读更多 >>>  java环境变量linux,linux系统下的Java环境变量设置

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

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

a

bcd";

看看

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获取各个节点的值:

java解析xml的几种方式哪种最好?

(1)DOM解析
DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取;
(2)SAX(Simple API for XML)解析
流模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法;
(1)、dom解析
dom解析是html和xml的应用程序接口(api) 以层次结构(类似与树形)来组织节点 和信息片段 映射xml文档的结构 允许获取和操作文档的任意部分 是官方标准
(2)、sax解析
流模型中in个的 推 模型 分析方式 通过事件驱动 没发现一个节点就引发一个事件 事件推给事件处理期 遍历回调方法
(3)、stax
流模型中的拉模型分析方式 提供基于指针和基于迭代器两种方式 的支持1.6新特征
(4)、jdom
java特定的文档对象模型 自身不包含解析器 使用sax
(5)、jdom4j
简单易用 采用java集合框架 兵完全支持dom sax 和jaxp

Dom4J解析XML

List nodes = document.selectNodes("/request/*");

dom4j解析无根节点的xml

public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
Document document;
try {
document = saxReader.read(new File(Dom4jParse.class.getClass()
.getResource("/").getFile().toString()
+ "test.xml"));
Element root = document.getRootElement();
List list = new ArrayList();
//List里存放的是BEAN对象的值
new Dom4jParse().parse(root , list);
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Bean bean = (Bean) iterator.next();
System.out.println("ID:" + bean.getId() + "\nAge:" + bean.getAge() + "\nName:" + bean.getName());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 获得X属性结果是X值的整个标签
*/
public void parse(Element node ,List list) {
Iterator iters = node.elementIterator("cdr");
while(iters.hasNext()){
Element itemEle = (Element) iters.next();
Bean bean = new Bean();
bean.setId(itemEle.elementText("ID") != null ? itemEle.elementText("ID") : "");
bean.setAge(itemEle.elementText("Name") != null ?itemEle.elementText("Name") : "");
bean.setName(itemEle.elementText("Age") != null ?itemEle.elementText("Age") : "");
list.add(bean);
}
}
简单了点,自己去加强

阅读更多 >>>  scanner是什么意思啊,scanner是啥意思

java 怎样解析 excel生成的xml文件

python可以的,java有困难
新生成的xml文件名称使用excel文件名。 当然这个的前提得会解析excel文件,上一篇文章说了Python如何解析excel文件。这里使用python 自带的xml库:xml.dom来生成xml。
java解析excel生成的xml文件的方法是使用dom4j实现的。
dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
1、excel生成的xml样例文件:


<workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"

xmlns:x="urn:schemas-microsoft-com:office:excel"

xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"

xmlns:html="http://www.w3.org/TR/REC-html40">

2006-09-16T00:00:00Z

2016-07-25T03:26:50Z

14.00

7956

14808

240

168

2

False

False

工号

姓名

工号

姓名

111

张三

111

<data
ss:Type="String">张三

112

李四

112

<data
ss:Type="String">李四

</data

</data

<table ss:expandedcolumncount="6" ss:expandedrowcount="3" x:fullcolumns="1"
x:FullRows="1" ss:DefaultRowHeight="14.4">

3

7

5

False

False

2、java解析代码:

import java.io.File;

import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class Demo {

public static void main(String[] args) throws Exception {

SAXReader reader = new SAXReader();

Document document = reader.read(new File("person.xml"));

Element root = document.getRootElement();

Iterator it = root.elementIterator();

while (it.hasNext()) {

Element element = (Element) it.next();

//未知属性名称情况下

/*Iterator attrIt = element.attributeIterator();

while (attrIt.hasNext()) {

Attribute a = (Attribute) attrIt.next();

System.out.println(a.getValue());

}*/

//已知属性名称情况下

System.out.println("id: " + element.attributeValue("id"));

//未知元素名情况下

/*Iterator eleIt = element.elementIterator();

while (eleIt.hasNext()) {

Element e = (Element) eleIt.next();

System.out.println(e.getName() + ": " + e.getText());

}

System.out.println();*/

//已知元素名情况下

System.out.println("title: " + element.elementText("title"));

System.out.println("author: " + element.elementText("author"));

System.out.println();

}

}

}
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获取各个节点的值:
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);
//对子节点进行其它操作...
}

阅读更多 >>>  mongodb查询语句大全,mongodb查询表内容

网站数据信息

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