热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javassssss_javassssss

packagecsm.doxml;importjava.io.File;importjavax.xml.parsers.DocumentBuilder;importjavax.xm

package csm.doxml;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.*;

import java.util.ArrayList;

/*读取xml文件并返回根结点,第一个子结点名字,第一个子结点的属性列*

*

**/

public class ReadXmlF{

public Element root=null;/*根结点*/

public String type=null;/*第一个结点类型名字*/

public ArrayList subNodeList=new ArrayList();/*子结点类型名字*/

String filename="product.xml";

ArrayList LevelOne=new ArrayList();

public ReadXmlF(){}

public ReadXmlF(String filenames){

filename=filenames;

}

protected int readXML()throws Exception{

/*创建文档实例*/

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

DocumentBuilder db=null;

NodeList children=null;/*子结点的子结点*/

try{

db=dbf.newDocumentBuilder();

}catch(ParserConfigurationException e1){

printf(":"+e1.getMessage());

return -1;

}

Document doc=null;

try{

doc=db.parse(filename);

}

catch(DOMException e2){

printf(":"+e2.getMessage());

return -2;

}

catch(Exception e3){

printf(e3.getMessage());

return -3;

}

/*开始取根*/

root=doc.getDocumentElement();

/*取第一个子结点类型*/

if(root!=null)

{

children=root.getChildNodes();

int len=children.getLength();

printf("root.length=:"+String.valueOf(len));

if(children.getLength()>0)//nodelist下标从1开始

for(int k=0;(2*k+1){

type=String.valueOf(children.item(2*k+1).getNodeName());

LevelOne.add(type);

}

}

/*再取第二层结点的子结点*/

Node peak = children.item(1);

for (int j=1; j {

String typename=String.valueOf(peak.getChildNodes().item(j++).getNodeName());

subNodeList.add(typename);

/**/printf("ch3:"+typename);

}

return 1;

}

/*返回第一层子结点名字*/

public ArrayList getFirstType(){

if(LevelOne.size()>0) return LevelOne;

else return null;

}

/*返回第一层个子结点名字*/

protected ArrayList getSubNode(){

if(subNodeList.size()>0)return subNodeList;

return null;

}

/*返回根结点*/

protected Element getRoot(){

if(root!=null)return root;

return null;

}

private void printf(String content){

System.out.println(content);

}

public static void main(String[] args){

ReadXmlF rf=new ReadXmlF("test2.xml");

Element ro=null;

try{int flags=rf.readXML();

ArrayList a=rf.getFirstType();

System.out.println("s1="+a.size());

//for(int i=0;i// System.out.println("s1="+String.valueOf(a.get(i)));

//ro=rf.getRoot();

}catch(Exception e){}

if(ro==null)

System.out.println("ro is null");

else

System.out.println("ro is not null");

}

}

101

Kiran

Pai

22

12300

102

Bill

Gates

22

12300

103

Steve

Jobs

22

12300

104

joe

singh

25

6300



推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • importjava.util.ArrayList;publicclassPageIndex{privateintpageSize;每页要显示的行privateintpageNum ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 标题: ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
author-avatar
jzb5485414
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有