包含javadomxml的词条
今天给各位分享javadomxml的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、JAVA中如何向XML文件中插入数据
- 2、XML配置文件怎么写,都有些什么属性?java代码如何解析XML配置文件?
- 3、java jdom获取xml的所有子节点包括节点里的值
- 4、java解析xml问题
- 5、简述java中dom操作和sax操作的区别
- 6、java 写入xml怎么试都不对,尖括号怎么处理?
JAVA中如何向XML文件中插入数据
cxzucc - 主管 六级 2009-11-12 20:32
sax,dom,dom4j,jdom等都是可以的,先看看资料吧
****************************************
这位仁兄说的不是对的,SAX是不能插入结点的。当然如果你说用SAX读到内存中创建一棵树再写回去那我就无言了。 像jdom、dom4j这些学一个其它的都懂了,没太大的区别。
输入这些关键字一搜网上的例子太多了
XML配置文件怎么写,都有些什么属性?java代码如何解析XML配置文件?
xml是类似这种的:
?xml version="1.0" encoding="gbk"?
head/head
body/body
可以在节点中加属性例如:
body id = "" name = ""/body
java代码解析一般用DOM4j.分两种类型的解析方式:
1.DOM: Document Object Model 文档对象模型
树形结构装载到内存中.完成后才开始解析.
缺点:如果文件比较大,内存有压力,时间会延迟.
优点:可以对树形结构做任何操作:加节点,删节点,遍历...
2.SAX: Simple API for XML
流(Stream)的特征,解析可以立即开始.
不保存数据. 对内存无压力.不能修改节点.
适合大文件的解析.
下面附上代码:
public static ListString parseCustomXML(String fileName) {
// 定义解析器
SAXReader saxReader = new SAXReader();
ListString eleList = new ArrayListString();
// 开始解析,返回文档对象
/*
* root
msg
element totalLenghtorder = "1" totalLenghtlenght = "8"totalLenght/element
element totalLenghtorder = "2" totalLenghtlenght = "8"bodyLenght/element
element jydmorder = "3" jydmlenght = "6"jydm/element
element msgTypeorder = "4" msgTypelenght = "2"msgType/element
element sendSignorder = "5" sendSignlenght = "1"sendSign/element
element msgCheckCodeorder = "6" msgCheckCodelenght = "32"msgCheckCode/element
element serviceNameorder = "7" serviceNamelenght = "8"serviceName/element
element msgAgreementorder = "8" msgAgreementlenght = "1"msgAgreement/element
element cprqorder = "9" cprqlenght = "8"cprq/element
element fkrzhorder = "10" fkrzhlenght = "20"fkrzh/element
element pjhmorder = "11" pjhmlenght = "8"pjhm/element
element jeorder = "12" jelenght = "20"je/element
element zfmmorder = "13" zfmmlenght = "20"zfmm/element
element jghorder = "14" jghlenght = "20"jgh/element
element yhdmorder = "15" yhdmlenght = "20"yhdm/element
/msg
/root
*/
try {
Document doc = saxReader.read(new File(fileName));
Element root = doc.getRootElement();// 获取根节点
Element msg = root.element("msg");
Iterator itEle = msg.elementIterator("element");// 遍历msg节点下的所有element节点
while (itEle.hasNext()) {
Element element = (Element) itEle.next();
String value = element.getText();
//测试
System.out.println(value);
eleList.add(value);
Iterator itAttr = element.attributeIterator();// 遍历每一个element节点的所有属性
while (itAttr.hasNext()) {
Attribute attr = (Attribute) itAttr.next();
//String keyAttr = attr.getName();
String valueAttr = attr.getValue();
//测试
System.out.println(valueAttr);
eleList.add(valueAttr);
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return eleList;
}
有不明白的 在帮你分析
java jdom获取xml的所有子节点包括节点里的值
给个例子你, 自己去套用就行给你
?xml version="1.0" encoding="utf-8"?
Accounts
Account type="type1"
code100001/code
pass123/pass
name李四/name
money1000000.00/money
/Account
Account type="type2"
code100002/code
pass123/pass
name张三/name
money1000.00/money
/Account
/Accounts
java代码解析:
import java.io.*;
/**
* xml文件解析
* @author young
*
*/
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlExam {
public static void main(String args[]) {
Element element = null;
// 可以使用绝对路劲
File f = new File("xml.xml");
// documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)
DocumentBuilder db = null;
DocumentBuilderFactory dbf = null;
try {
// 返回documentBuilderFactory对象
dbf = DocumentBuilderFactory.newInstance();
// 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象
db = dbf.newDocumentBuilder();
// 得到一个DOM并返回给document对象
Document dt = db.parse(f);
// 得到一个elment根元素
element = dt.getDocumentElement();
// 获得根节点
System.out.println("根元素:" + element.getNodeName());
// 获得根元素下的子节点
NodeList childNodes = element.getChildNodes();
// 遍历这些子节点
for (int i = 0; i childNodes.getLength(); i++) {
// 获得每个对应位置i的结点
Node node1 = childNodes.item(i);
if ("Account".equals(node1.getNodeName())) {
// 如果节点的名称为"Account",则输出Account元素属性type
System.out.println("\r\n找到一篇账号. 所属区域: "
+ node1.getAttributes().getNamedItem("type")
.getNodeValue() + ". ");
// 获得Accounts下的节点
NodeList nodeDetail = node1.getChildNodes();
// 遍历Accounts下的节点
for (int j = 0; j nodeDetail.getLength(); j++) {
// 获得Accounts元素每一个节点
Node detail = nodeDetail.item(j);
if ("code".equals(detail.getNodeName())) // 输出code
System.out
.println("卡号: " + detail.getTextContent());
else if ("pass".equals(detail.getNodeName())) // 输出pass
System.out
.println("密码: " + detail.getTextContent());
else if ("name".equals(detail.getNodeName())) // 输出name
System.out
.println("姓名: " + detail.getTextContent());
else if ("money".equals(detail.getNodeName())) // 输出money
System.out
.println("余额: " + detail.getTextContent());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
java解析xml问题
//使用getChildNodes()会将空白符也作为子元素算进去,
//所以getChildNodes().item(i)的时候,有些子节点是空白符。
//这时候要加if判断一下,过滤掉空白符,有两种写法:
Node childNode=getChildNodes().item(i);
(1)if(childNode instanceof Element){
//具体执行代码
}
(2)if(childNode.getNodeType()==Node.ELEMENT_NODE){
//具体执行代码
}
简述java中dom操作和sax操作的区别
分别解释如下:
DOM,即Document Object Model,中文叫文档对象模型。DOM是W3C定义的标准文档对象模型,是一个与操作系统和编程语言无关的、用于内存存储和操作层次化文档的模型。当按 照DOM模型解析XML文档时,就会在内存中构造一个对应的DOM树,它可以用于不同节点之间的遍历。然而,在遍历之前必须先完成DOM树的构造。因此, 在处理规模较大的XML文档时就很耗内存,占用资源较多。尤其是只需要操作文档中一小部分时效率很低。
SAX,即Simple API for XML的简称,中文叫XML简单应用程序接口。它是一个事实上的标准。与DOM不同的是,它是用事件驱动模型。解析XMl文档时每遇到一个开始或者结束标 签、或者属性、或者一条指令时,程序就产生一个事件来进行相应的处理。所以在操作文档之前不需要对整个文档进行解析。实际上,文档的各个部分可以在进行解 析的同时进行操作。因此,SAX相对于DOM来说更适合操作大文档。
java 写入xml怎么试都不对,尖括号怎么处理?
当然不行了,可以为期转义,看看html对它是怎么处理的,就知道了,
关于javadomxml和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。