问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java解析xml文件

发布网友 发布时间:2022-04-30 15:57

我来回答

2个回答

热心网友 时间:2022-06-26 21:57

给个例子你

<?xml version="1.0" encoding="utf-8"?>
<Accounts>
 <Account type="type1">
  <code>100001</code>
  <pass>123</pass>
  <name>李四</name>
  <money>1000000.00</money>
 </Account>
 <Account type="type2">
  <code>100002</code>
  <pass>123</pass>
  <name>张三</name>
  <money>1000.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();
}
}
}

要导入的jar包

结果、

热心网友 时间:2022-06-26 21:58

你可以从网上下载相应版本的XML应用库,然后,

编译程序时,调用其中的函数进行XML文件解析。

如果是简单的XML文件,或只是进行少量的数据存取,

也可以自己写相应的取值、赋值函数进行数据操作。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
intel 英特尔 酷睿 i5-9400F CPU 2.9GHz 6核6线程-详细介绍 vivo手机越用网络越慢 怎么检测 二手苹果电脑交易注意买二手苹果笔记本电脑应注意什么 比如我买一个二手笔记本卖家笔记本预装正版win10的话把他账号注销登录我... 二手苹果笔记本怎么更改账户 军婚假期有多少天 金立e6mini开机出现el 甘肃基层卫生主要内容 甘肃基层医疗卫生系统怎么撤销处方 天津市选调生通过面试了不去会怎么样 消防图中ZNBV-2*2.5-T16-WC代表什么意思 大港区,津南区有软件公司吗?(跪求) 刚刚寄出的快递还没运走退回会退运费吗? 婚礼,婚房选红色背景合适吗 红色是喜庆热闹,开门红,日子红红火火? ZN-BV-2*2.5是什么意思 有哪些让你瞬间负能量的感受? 《兰陵王》皇太后是怎么被郑儿害死的? 甄嬛传:滴血认亲时,皇后做了什么手脚? 农业银行聚合收款码收费标准 各行收款码收费标准 opporeno6竖屏锁定怎么设置 oppo竖屏锁定哪里设置 丝绸衣服怎么清洗能保持原样 丝绸制的衣服容易损坏,如何保养? 衣物保养与收藏的基本方法 丝绸的衣服怎么保养? 丝绸的衣服该如何护理? 丝绸衣服的保养 富贵圈穿的衣服都是用真丝做的,这些衣服如何清洗? 丝绸的衣服怎么保养打理? 图纸上13-zn-RVS-2*2.5代表什么意思 写一个JAVA脚本,怎样使复选框按情况而选项不同? 寄快递给了钱突然不寄了钱不退 citypicker用法 天津市津南区的早点技术培训学校哪里教的好? 津南区有自己的网站吗? 我的快递付费了,但还没寄走能退吗? j2me 读取 一行一行的String zn—rv是什么意思,消防安装要用要这样的线,不知道是不是电缆线 邮政包裹没发出去,拿回来的话,要收费吗,还有邮费能退么? 消防用线zN_Rⅴs代表什么? 我寄的快递结果那边的站点的工作人员拒收还退回那运费会不会退回? 圈套猜什么生肖 快递在寄出去可以退回来吗 十二生肖中,有勇无谋、落入圈套指的是什么动物? 圈套是什么生肖 温情的“圈套”是什么生肖?像什么生肖? QQ圈套是什么生肖 十面埋伏设圈套。猜生肖 银河超级计算机主频达到多少hz