java中xml解析器的应用实例

Java解析XML工具类--(java源码) package com.hexiang.utils; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** * 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的节点 * @param attributeName 要取值的属性名称 * @return 要获取的属性的值 * @author HX_2010-01-12 */ public static String getAttribute( Element element, String attributeName ) { return element.getAttribute( attributeName ); } /** * 获取指定节点下的文本 * @param element 要获取文本的节点 * @return 指定节点下的文本 * @author HX_2010-01-12 */ public static String getText( Element element ) { return element.getFirstChild().getNodeValue(); } /** * 解析某个xml文件,并在内存中创建DOM树 * @param xmlFile 要解析的XML文件 * @return 解析某个配置文件后的Document * @throws Exception xml文件不存在 */ public static Document parse( String xmlFile ) throws Exception { // 绑定XML文件,建造DOM树 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document domTree = db.parse( xmlFile ); return domTree; } /** * 获得某节点下的某个子节点(指定子节点名称,和某个属性的值) * 即获取parentElement下名字叫childName,并且属性attributeName的值为attributeValue的子结点 * @param parentElement 要获取子节点的那个父节点 * @param childName 要获取的子节点名称 * @param attributeName 要指定的属性名称 * @param attributeValue 要指定的属性的值 * @return 符合条件的子节点 * @throws Exception 子结点不存在或有多个符合条件的子节点 * @author HX_2008-12-01 */ public static Element getChildElement( Element parentElement, String childName, String attributeName, String attributeValue ) throws Exception { NodeList list = parentElement.getElementsByTagName( childName ); int count = 0; Element curElement = null; for ( int i = 0 ; i < list.getLength() ; i ++ ) { Element child = ( Element )list.item( i ); String value = child.getAttribute( attributeName ); if ( true == value.equals( attributeValue ) ) { curElement = 立即下载
 xml解析中,通常大家读文件,解析的时候没有问题,但是在写文件的时候常常会碰到乱码等问题,就我的个人体会是一般只要在写文件的时候采用文件流的形式,设置好当前的编码方式,通常就会避免此类问题的发生!下面有两个简单的分别是采用jdom和dom4j实现的例子:

1、dom4j

package org.lyj.xml;

import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.Element;
import java.io.FileWriter;
import org.dom4j.io.OutputFormat;
import org.dom4j.Namespace;
import org.dom4j.io.XMLWriter;
import java.io.File;
import java.io.IOException;
import org.dom4j.DocumentHelper;


/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Dom4jTest {
    public void generateDocument() {
        org.dom4j.DocumentFactory df = new org.dom4j.DocumentFactory();
        Document document = df.createDocument();//.createDocument();
        Element catalogElement = document.addElement("catalog");
        catalogElement.addComment("An XML Catalog");
        catalogElement.addProcessingInstruction("target", "text");
        Element journalElement = catalogElement.addElement("journal");
        journalElement.addAttribute("title", "XML Zone");
        journalElement.addAttribute("publisher", "IBM developerWorks");

        Element articleElement = journalElement.addElement("article");
        articleElement.addAttribute("level", "Intermediate");
        articleElement.addAttribute("date", "December-2001");
        Element titleElement = articleElement.addElement("title");
        titleElement.setText("Java configuration with XML Schema");
        Element authorElement = articleElement.addElement("author");
        Element firstNameElement = authorElement.addElement("录音机");
        firstNameElement.setText("Marcello");
        Element lastNameElement = authorElement.addElement("刘");
        lastNameElement.setText("Vitaletti");

        document.addDocType("catalog",
                            null, "file://c:/Dtds/catalog.dtd");
        document.setXMLEncoding("gb2312");

        try {
            OutputFormat of = OutputFormat.createCompactFormat();
            of.setEncoding("gb2312");
            XMLWriter output = new XMLWriter(
                    new java.io.FileOutputStream(new File("c:/catalog/catalog.xml")),of);
            output.write(document);
            output.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }

    public static void main(String[] argv) {
        Dom4jTest dom4j = new Dom4jTest();
        dom4j.generateDocument();
    }
}

2、jdom

package org.lyj.xml;

import org.jdom.output.Format;
import org.jdom.Document;
import java.io.IOException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.jdom.JDOMException;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class JdomWriter {
    public JdomWriter() {
    }

    public void write(){
        try {
            SAXBuilder builder = new SAXBuilder();
            Document doc = builder.build("aa.xml");
            XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat().setEncoding("utf-8"));
            outputter.output(doc, new java.io.FileOutputStream("bb.xml"));
        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }
    public static void main(String args[]){
        JdomWriter jd = new JdomWriter();
        jd.write();
    }
}



Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=458147


java写的xml解析小工具 用于解析xml文档,根据不同的节点名称,提取对应节点下面的内容 立即下载

相关推荐

CosyVoice 本地部署详细教程 手把手小白教程

本文提供了详细的CosyVoice本地部署教程,强调了避免中文名称和空格的重要性,并列出了必要的软件安装步骤,包括CUDA、cuDNN、Git和Miniconda。教程涵盖了从检查CUDA版本到下载模型和运行模型的全过程,确保用户能够顺利部署并使用CosyVoice。

huazn612的博客 2万+

java xml解析方式的介绍

选择哪种解析方式取决于您的需求和 XML 文档的大小。如果您需要在内存中操作整个 XML 文档并进行复杂的查询和修改操作,DOM 解析器可能是一个好的选择。如果您处理的是大型 XML 文档,并且只需要顺序地读取和处理其中的数据,SAX 或 StAX 解析器可能更合适。而如果您希望将 XML 文档与 Java 对象之间进行转换,并进行对象级别的操作,JAXB 数据绑定是一个不错的选择。

qq_44166712的博客 363

Jaspersoft Studio安装与配置全攻略:从下载到首个报表生成

本文提供Jaspersoft Studio从下载、安装到创建首个报表的完整实战指南。详细介绍了如何获取安装包、配置工作空间,并通过可视化设计器创建报表模板、添加参数与字段,最终实现数据预览与PDF导出。帮助Java开发者快速掌握这一强大的开源报表工具,提升报表开发效率。

weixin_28826521的博客 707

Java进阶(五十一)XML:四种解析器(dom,sax,jdom,dom4j)原理及性能比较

Java进阶(五十一)XML:四种解析器(dom,sax,jdom,dom4j)原理及性能比较  dom是解析xml的底层接口之一(另一种是sax).而jdom和dom4j则是基于底层api的更高级封装。dom是通用的,具有跨语言、跨平台性,而jdom和dom4j则是面向java语言的。 1.DOM  DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组

IT全栈 华强工作室 4万+

蛋白质组学进阶指南 | (八)差异蛋白筛选与功能解析实战

本文是蛋白质组学差异蛋白筛选与功能解析的实战指南。详细讲解了如何利用R语言的limma包进行差异表达分析,结合FDR校正和差异倍数设定筛选关键蛋白,并通过火山图可视化结果。进一步介绍了使用clusterProfiler进行GO与KEGG功能富集分析,以及利用STRING数据库和Cytoscape构建蛋白互作网络以识别枢纽分子,最终串联分析形成可验证的生物学假说。

weixin_29208077的博客 745

4、I3C协议详解

I3C最初的设计目的是为移动设备创建一个能够使用多个传感器的单一接口。随着现代化移动设备对于传感器数量的增加以及对性能的提高,I2C和SPI已经达到了他们所能支持的临界点,而I3C的出现就是为了解决这一问题,I3C可以在同一根主线上支持更多的传感器设备,而且不会因为要支持中断或睡眠模式而增加额外的逻辑信号。I3C可以在更低功耗的情况下提供更快的传输速率,该特性的提升不止是对移动设备,对其他的嵌入式设备也都是很大的帮助。例如穿戴设备,需要在有限的物理空间中使用多个传感器并且要求更小的耗电。 一、简述..

迟子涵925的博客 2万+

Java解析XML

无

qq_64388611的博客 1346

全国30米分辨率逐年植被覆盖度(FVC)数据集

植被覆盖度是描述地表植被的重要参数与生态环境的基本指标,在大气圈、土壤圈、水圈和生物圈中都占据着重要的地位,区域及全球范围的植被覆盖度估算对植被及相关领域的研究具有重要意义。往往参照《土壤侵蚀分类分级标准》,将植被覆盖度划分为4个等级:<30%为低覆盖度、30%—45%为中低覆盖度、45%—60%为中覆盖度、>60%为高覆盖度。本数据集包括1986至2022年间,全国植被覆盖度数据,FVC范围值为0-1,数据为浮点型,GeoTIFF格式。NDVImax 和NDVImin分别为区域内最大和最小的NDVI值。

地球资源数据云的官方博客 1967

java中xml解析器_java中xml解析器的应用实例

xml解析中,通常大家读文件,解析的时候没有问题,但是在写文件的时候常常会碰到乱码等问题,就我的个人体会是一般只要在写文件的时候采用文件流的形式,设置好当前的编码方式,通常就会避免此类问题的发生!下面有两个简单的分别是采用jdom和dom4j实现的例子:1、dom4jpackage org.lyj.xml;import java.io.OutputStream;import java.io.Uns...

weixin_35724224的博客 213

【腾讯小龙虾WorkBuddy专栏04】一文搞懂WorkBuddy的「专家」和「专家团」

WorkBuddy专家与专家团:专业级AI协作解决方案 WorkBuddy的专家(Expert)与专家团(Expert Team)功能颠覆了通用AI的局限性,提供角色化、可交付的专业服务。 核心优势 专家:深度垂直领域的AI顾问,具备人设、方法论、工具链,如全栈开发专家能直接交付完整项目,而非代码片段。 专家团:多智能体协作,自动拆解复杂任务(如竞品分析、全栈开发)并分发给对应角色,并行执行后整合输出,效率提升显著。 使用场景 单专家:解决专业问题(如SQL优化、UI设计)。

AI人人懂 2035

Codex入门10-Goal自主任务(进阶必学:设定目标就不管了,AI自己干活到完成)

/goal 是Codex CLI最强大的进阶功能——设定一个目标,AI就会制定计划、分步执行、自我测试、持续迭代,即使你关掉终端也会继续。本文详解/goal的工作原理、配置启用方法、常用命令(pause/resume/status/clear),以及如何写出高质量的目标描述让AI高效自主完成任务。

yueyeguzhuo的专栏 456

java中的xml应用_java中xml解析器的应用实例

xml解析中,通常大家读文件,解析的时候没有问题,但是在写文件的时候常常会碰到乱码等问题,就我的个人体会是一般只要在写文件的时候采用文件流的形式,设置好当前的编码方式,通常就会避免此类问题的发生!下面有两个简单的分别是采用jdom和dom4j实现的例子:1、dom4jpackage org.lyj.xml;import java.io.OutputStream;import java.io.Uns...

weixin_33582311的博客 96

Slow waitForAckedSeqno took 64873ms (threshold=30000ms). File being written

Slow waitForAckedSeqno took 64873ms (threshold=30000ms). File being written

zhengzaifeidelushang的博客 2011

Android 解析xml 之DOM

DOM解析器是通过将XML文档解析成树状模型并将其放入内存来完成解析工作的,而后对文档的操作都是在这个树状模型上完成的。这个在内存中的文档树将是文档实际大小的几倍。这样做的好处是结构清除、操作方便,而带来的麻烦就是极其耗费系统资源。而SAX正好克服了DOM的缺点,分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中,这对于大型文档来...

ruilinruirui 68

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

datatables 树形表格 java数据组装_Java学习之使用XML表示表格的数据

首先Schema约束文档为:<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="users"> <xs:complexType> <xs:sequence&g...

weixin_39752215的博客 148

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

xml解析:Sax,Dom,pull解析

Sax 1.startDocument()文档开始 2.endDocument()文档结束 3.startElement(String namespaceURI,String localName,String qName,Attributes atts);   元素开始,localName是元素名 1.4endElement(String uri, String localName,

涂作权的博客 1117

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

使用DOM解析XML

DOM(Document Object Model,文档对象模型)是w3c定义的一套规范标准,规定了解析文档的接口。各种语言均可接DOM规范去实现这些接口,给出解析文档的解析器。DOM规范中所指的文档比较广泛,包括XML文件和HTML文件。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。

qq_17288553的博客 260

SAX解析XML

在使用 DOM 解析 XML 文档时,需要读取整个 XML 文档,在内存中构架代表整个 DOM 树的Doucment对象,从而再对XML文档进行操作。此种情况下,如果 XML 文档特别大,就会消耗计算机的大量内存,并且容易导致内存溢出。 SAX解析允许在读取文档的时候,即对文档进行处理,而不必等到整个文档装载完才会文档进行操作。 SAX采用事件处理的方式解析XML文件,利用 SAX ...

weixin_30784501的博客 62

Android XML解析之Pull

转自:http://telecom.chinaitlab.com/ydkf/872500.html Pull解析XML文档; 首先建一个android项目,在cn.class3g.service里建一个名为person_list,xml: view plaincopy to clipboardprint? &lt;?xml version="1.0" encoding="UTF...

weixin_33716154的博客 68

Java解析xml的主要解析器: SAX和DOM的选择(附上新方法--Pull解析)

Java的xml解析器库有很多,总的来说,万变不离其宗的就是SAX和DOM解析器。 SAX的包是org.xml.sax DOM的包是org.w3c.dom   1) DOM      DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加

567

java xml解析器_Java XML解析器

java xml解析器Java XML parser is used to work with xml data. XML is widely used technology to transport or store data. That’s why there are many java xml parsers available. Java XML解析器用于处理xml数据。 XML是广泛用于...

从零开始的教程世界 1112

Java XML解析器

Java XML解析器 Java XML解析器用于处理xml数据。XML是广泛使用的技术来传输或存储数据。这就是为什么有许多java xml解析器可用的原因。 目录[隐藏] 1Java XML Parser 1.1Java XML Parser - DOM 1.2Java XML Parser - SAX 1.3StAX Java XML Parse...

YunWisdom 794

XML解析器

相关阅读 XML约束 Xml 格式数据的生成和解析 XML解析器 一、操作XML文档概述1、如何操作XML文档XML文档也是数据的一种,对数据的操作也不外乎是“增删改查”。也被大家称之为“CRUD” C:Create; R:Retrieve; U:Update; D:Delete 2、XML解析技术XML解析方式分为两种:DOM(Document Object Model)和SAX(Simple A

JackChan 9831

Java XML 解析器

在工作中我们也许会用到xml,比如java中的配置文件,或者是一些基于硬件方面的接口通讯,一般都不是json,而是xml格式的,那为了好操作,我们需要把xml文件格式转换为我们需要的实体对象,那么:如何高效的将xml对象解析为我们的实体类对象? 目前在java中比较流行的,xml解析器有四种: 1.DOM解析器 2.SAX 解析器 3.StAX解析器 4.JAXB解析器  (这里暂不试验...

qq_35716892的博客 4671
上一篇: Resin 3.x 经验总结
下一篇: 转:创建自定义的validator 2个域的值必须一致。
eyejava
博客等级 码龄20年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值