`

java增量读写XML

 
阅读更多
import java.io.File;
import java.io.FileOutputStream;
import java.util.HashSet;
import java.util.Set;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

public class MyClass<T> {

	Set<?> set = new HashSet<T>();

	public static void main(String[] args) {

		/**
		 * The method add(capture#1-of ?) in the type Set<capture#1-of ?> is not
		 * applicable for the arguments (Collection<capture#2-of ?>)
		 */
		// new MyClass<Integer>().set.add((Collection<?>) new Object());

		try {
			File f = new File("test.xml");
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document doc = builder.parse(f);
			NodeList nl = doc.getElementsByTagName("GolfCourse");
			for (int i = 0; i < nl.getLength(); i++) {
				doc.getElementsByTagName("Name").item(i).getFirstChild().setNodeValue("hello");
				// System.out.print("Name: " +
				// doc.getElementsByTagName("Name").item(i).getFirstChild().getNodeValue());
				// System.out.println("Slope: " +
				// doc.getElementsByTagName("Slope").item(i).getFirstChild().getNodeValue());
			}
			
			TransformerFactory transFactory = TransformerFactory.newInstance();
			Transformer transformer = transFactory.newTransformer();
			DOMSource source = new DOMSource();
			source.setNode(doc);
			StreamResult result = new StreamResult();
			result.setOutputStream(new FileOutputStream("test.xml"));
			transformer.transform(source, result);
			
			
			

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


test.xml
<?xml version="1.0" encoding="UTF-8"?>
<tns:GolfCountryClub xmlns:tns="http://www.example.org/GolfCountryClub" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/GolfCountryClub GolfCountryClub.xsd ">

  <GolfCourse NumberOfHoles="18">
    <Name>Bird's Nest Course</Name>
    <Yardage>7125</Yardage>
    <Par>72</Par>
    <Handicap>74.6</Handicap>
    <Slope>138</Slope>
  </GolfCourse>
  
  <GolfCourse NumberOfHoles="18">
    <Name>Eagle's Nest Course</Name>
    <Yardage>7198</Yardage>
    <Par>72</Par>
    <Handicap>73.5</Handicap>
    <Slope>136</Slope>
  </GolfCourse>
  
  <Member handicap="20">
    <RegularMember>
      <FirstName>Keith</FirstName>
      <LastName>Chong</LastName>
      <MembershipExpiry>2010-10-31</MembershipExpiry>
    </RegularMember>
  </Member>

  <Member handicap="0">
    <ExclusiveMember>
      <FirstName>James</FirstName>
      <MiddleName>Lion</MiddleName>
      <LastName>Chan</LastName>
      <ValetParkingID>124</ValetParkingID>
      <LockerNumber>10</LockerNumber>
    </ExclusiveMember>
  </Member>

  <Member handicap="25">
    <RestrictedMember>
      <FirstName>Allan</FirstName>
      <LastName>Chong</LastName>
      <MembershipExpiry>2010-10-31</MembershipExpiry>
      <LimitedPlay>Weekend Only</LimitedPlay>
    </RestrictedMember>
  </Member>
  
  <Member handicap="10">
    <RegularMember>
      <FirstName>Murray</FirstName>
      <MiddleName>Izzun</MiddleName>
      <LastName>Beaton</LastName>
      <MembershipExpiry>2010-09-30</MembershipExpiry>
    </RegularMember>
  </Member>

  <Employee>
    <FirstName>Craig</FirstName>
    <LastName>Salter</LastName>
    <EmployeeNumber>12463</EmployeeNumber>
  </Employee>
  
  <Employee>
    <FirstName>Ernest</FirstName>
    <LastName>Mah</LastName>
    <EmployeeNumber>15234</EmployeeNumber>
  </Employee>

  <ProShop>
    <GolfClub>
      <ManufacturerName>Tailor Built</ManufacturerName>
      <Quantity>20</Quantity>
      <ClubKind>Driver</ClubKind>
      <Loft>10.5 Degrees</Loft>
      <Shaft>Stiff</Shaft>
    </GolfClub>
    <GolfClub>
      <ManufacturerName>Clever Plains</ManufacturerName>
      <Quantity>5</Quantity>
      <ClubKind>Wedge</ClubKind>
      <Loft>60 Degrees</Loft>
      <Shaft>Regular</Shaft>
    </GolfClub>
    <BoxOfBalls>
      <ManufacturerName>A-Subject</ManufacturerName>
      <Quantity>20</Quantity>
      <ProductDetails>Pos. A High Spin/12</ProductDetails>
    </BoxOfBalls>
  </ProShop>

</tns:GolfCountryClub>


修改后的test.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?><tns:GolfCountryClub xmlns:tns="http://www.example.org/GolfCountryClub" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/GolfCountryClub GolfCountryClub.xsd ">

  <GolfCourse NumberOfHoles="18">
    <Name>hello</Name>
    <Yardage>7125</Yardage>
    <Par>72</Par>
    <Handicap>74.6</Handicap>
    <Slope>138</Slope>
  </GolfCourse>
  
  <GolfCourse NumberOfHoles="18">
    <Name>hello</Name>
    <Yardage>7198</Yardage>
    <Par>72</Par>
    <Handicap>73.5</Handicap>
    <Slope>136</Slope>
  </GolfCourse>
  
  <Member handicap="20">
    <RegularMember>
      <FirstName>Keith</FirstName>
      <LastName>Chong</LastName>
      <MembershipExpiry>2010-10-31</MembershipExpiry>
    </RegularMember>
  </Member>

  <Member handicap="0">
    <ExclusiveMember>
      <FirstName>James</FirstName>
      <MiddleName>Lion</MiddleName>
      <LastName>Chan</LastName>
      <ValetParkingID>124</ValetParkingID>
      <LockerNumber>10</LockerNumber>
    </ExclusiveMember>
  </Member>

  <Member handicap="25">
    <RestrictedMember>
      <FirstName>Allan</FirstName>
      <LastName>Chong</LastName>
      <MembershipExpiry>2010-10-31</MembershipExpiry>
      <LimitedPlay>Weekend Only</LimitedPlay>
    </RestrictedMember>
  </Member>
  
  <Member handicap="10">
    <RegularMember>
      <FirstName>Murray</FirstName>
      <MiddleName>Izzun</MiddleName>
      <LastName>Beaton</LastName>
      <MembershipExpiry>2010-09-30</MembershipExpiry>
    </RegularMember>
  </Member>

  <Employee>
    <FirstName>Craig</FirstName>
    <LastName>Salter</LastName>
    <EmployeeNumber>12463</EmployeeNumber>
  </Employee>
  
  <Employee>
    <FirstName>Ernest</FirstName>
    <LastName>Mah</LastName>
    <EmployeeNumber>15234</EmployeeNumber>
  </Employee>

  <ProShop>
    <GolfClub>
      <ManufacturerName>Tailor Built</ManufacturerName>
      <Quantity>20</Quantity>
      <ClubKind>Driver</ClubKind>
      <Loft>10.5 Degrees</Loft>
      <Shaft>Stiff</Shaft>
    </GolfClub>
    <GolfClub>
      <ManufacturerName>Clever Plains</ManufacturerName>
      <Quantity>5</Quantity>
      <ClubKind>Wedge</ClubKind>
      <Loft>60 Degrees</Loft>
      <Shaft>Regular</Shaft>
    </GolfClub>
    <BoxOfBalls>
      <ManufacturerName>A-Subject</ManufacturerName>
      <Quantity>20</Quantity>
      <ProductDetails>Pos. A High Spin/12</ProductDetails>
    </BoxOfBalls>
  </ProShop>

</tns:GolfCountryClub>
分享到:
评论

相关推荐

    java-xml.zip_xml;源代码;

    Java通过API如Java API for XML Processing (JAXP),DOM(Document Object Model),SAX(Simple API for XML)和StAX(Streaming API for XML)提供了对XML的支持。 1. JAXP:这是Java平台标准的一部分,提供了...

    根据表自动生成代码java, generatorConfig.xml配置文件

    在Java开发过程中,为了提高效率并减少重复劳动,开发者经常使用代码生成工具,根据数据库中的表结构自动生成相应的Java实体类、Mapper接口、Mapper XML文件以及Service和Controller等层的代码。这种自动化的方式...

    新兴XML处理方法VTD-XML介绍

    **增量更新支持**:VTD-XML支持增量更新,这意味着对XML文档的修改可以直接在文档上进行,而不需要先将其解析成对象模型然后再重新构建XML文档。这种特性极大地提高了更新效率。 **快速解析与遍历**:由于采用了非...

    mybatis热部署mapper增量更新.

    在pom.xml中引入`spring-boot-devtools`依赖,并配置相应的排除项,确保只对mapper文件进行热部署。 5. **手动刷新**:如果不想或者不能使用上述工具,也可以通过API手动触发MyBatis的刷新操作。例如,在Java代码中...

    Android解析XML使用WebView显示

    - **Pull解析器**:适用于迭代读取XML数据,如XmlPullParser,它是基于事件驱动的,适合进行增量解析。 2. **JSON转换**: - **Gson库**:Google提供的库,可以方便地将Java对象转换为JSON字符串,反之亦然。在...

    svn增量包工具

    这个工具的来源:  从事了几年的工作之后,发现在部署服务的时候,总是需要将自己修改的源码编译... 源于上述遇到的问题,综合平时上班所需,开发了这个小工具,简称(svn增量包工具); 希望对各位小伙伴有所帮助

    Java测试覆盖率工具cobertura1.9

    Ant是一个广泛使用的Java项目构建工具,通过XML配置文件定义任务和依赖关系,实现自动化编译、打包、测试等一系列工作。将Cobertura与Ant结合,开发者可以在执行Ant构建时轻松地添加测试覆盖率检查,无需额外的复杂...

    XML读写DEMO

    此外,使用XML Schema(XSD)或DTD(Document Type Definition)可以对XML文档进行验证,确保其符合预定义的结构。 以上就是"XML读写DEMO"中涉及的主要IT知识点。理解并掌握这些概念对于任何需要处理结构化数据的...

    一个基于svnkit的简单增量发布工具

    SVNKit是一个强大的Java库,它提供了对Subversion(SVN)版本控制系统全面的支持。通过这个工具,开发者可以便捷地与SVN仓库进行交互,包括版本控制、文件增删改查以及版本间的差异比较等操作。 【描述】:“NULL ...

    springboot-binlog:基于 mysql-binlog-connector-java 实现增量数据的收集

    综上所述,`springboot-binlog`项目利用`mysql-binlog-connector-java`实现了对MySQL数据库增量数据的高效、实时收集,为大数据处理和实时分析提供了有力支持。在实际应用中,根据具体业务需求进行适当的定制和优化...

    Android 增量更新完整实例代码

    - **源码**:实现增量更新功能的Java或Kotlin代码,包括用于计算差异、打包和合并更新的类。 - **示例配置**:可能包含XML配置文件,用于设置更新检查的频率、服务器URL等参数。 - **测试用例**:可能包含单元测试或...

    (超赞)JAVA精华之--深入JAVA API

    - `java.util.Hashtable` 是线程安全的键值对映射容器,不允许 null 键或 null 值。 - **位集合类 BitSet** - `java.util.BitSet` 用于存储位字段,可以高效地进行位操作。 **1.1.3 Java IO包** - **数据流** ...

    java 对Redis的导入和导出

    通过以上步骤,我们可以实现Java对Redis数据的导入和导出。这不仅可以帮助我们在不同服务器间迁移数据,还可以用于备份和恢复,确保系统的稳定性和数据安全性。在实际应用中,应根据具体需求进行适当的调整和优化。

    Mybatis-Generator自动生成bean和xml

    Mybatis-Generator是一款强大的工具,它能够帮助Java开发者自动生成Mybatis相关的代码,包括Model(Bean)类、Mapper接口以及对应的XML映射文件。通过使用这个工具,开发人员可以节省大量的手动编写这些基础代码的...

    solr增量更新jar包及配置文件

    4. 提交:在处理完一批增量数据后,Solr会进行提交操作,使索引变更对搜索可见。 5. 错误处理:配置适当的错误处理机制,如重试、日志记录等,以确保系统的健壮性。 综上所述,"solr增量更新jar包及配置文件"是Solr...

    利用ant脚本 自动构建svn增量.docx

    Ant是一个开源的Java构建工具,它通过XML格式的构建文件(build.xml)来定义构建任务。这些任务包括编译源代码、创建JAR或WAR包、运行测试、部署应用程序等。Ant的主要优点在于其灵活性和可扩展性,可以根据项目需求...

    svn 日志导出 增量补丁工具

    通过查询日志,开发者可以查看过去对代码所做的更改,找出特定的修改或回溯错误。 筛选svn日志通常是通过命令行工具`svn log`完成的,可以通过指定日期范围、作者、提交信息关键字等参数来过滤日志。例如,如果我们...

    跟益达学Solr5之增量索引MySQL数据库表数据

    在这个主题“跟益达学Solr5之增量索引MySQL数据库表数据”中,我们将深入探讨如何利用Solr 5来实现对MySQL数据库表数据的增量索引,以便在搜索时获得实时更新的结果。 首先,我们需要理解什么是增量索引。在传统的...

    一个检查ZIP格式增量包的小工具

    结合这些信息,我们可以推测这个ZIP格式增量包检查工具可能是用Java编写,利用了dom4j库来处理XML数据,而jaxen则用于高效地查找和匹配文件内的XML内容。通过阅读博客文章和源代码,我们可以深入学习如何利用这些库...

    java cs自动更新

    - XML(`autoupdate.xml`)用于存储配置信息,易于读写和解析。 - 可能采用了HTTP/HTTPS协议进行通信,保证更新数据的安全传输。 4. **安全性与可靠性** - 更新过程中应确保数据完整性,可能通过校验和或数字...

Global site tag (gtag.js) - Google Analytics