包含javadomxml的词条

博主:adminadmin 2023-03-17 01:00:22 381

今天给各位分享javadomxml的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。