ITPub博客

首页 > Linux操作系统 > Linux操作系统 > javatest

javatest

原创 Linux操作系统 作者:byddong 时间:2008-08-14 22:37:43 0 删除 编辑

package csm.doxml;
/*增加属性列用*/
import java.util.ArrayList;
public interface Add_Attributes{
 public static ArrayList subNameList=new ArrayList();
 public void addAttribute(String as);
 
 }

package csm.doxml;

public class Produce_ID{
public String A;
public String B;
public Produce_ID(){}
public Produce_ID(String A2,String B2){this.A=A2;this.B=B2;}

public void setA(String A1){this.A=A1;} 
public void setB(String B1){this.B=B1;} 

public String getA(){return A;}
public String getB(){return B;}
 
}

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文件的类容,并生成一个Produce_ID列表,它默认的文件名字为defaultfilename
 *也可以设置setFilename() *
 *
 **/
public class ReadConfigs implements Add_Attributes{
 
String filename;
private static String defaultfile="product.xml";
 

 
public ReadConfigs()
{
 
filename=defaultfile;
subNameList.add("A");
subNameList.add("B");
subNameList.add("C");
subNameList.add("D");
 
}

/*设置文件名*/  
public void setFileName(String filenames)
{
 filename=filenames;
} 
/*增加读取的属性列*/
public void addAttribute(String as)
{subNameList.add(as);}

/*获取料号A+B*/
public ArrayList getProd_ID(){
ArrayList ProdList=new ArrayList();
ReadXmlF rf=new ReadXmlF(filename);
String type=null;
Element root=null;
ArrayList typeList=new ArrayList();
try{
 int flags=rf.readXML();/*读xml文件*/
 printf("flag="+flags); 
 root=rf.getRoot();/*获取根*/
 type=rf.getFirstType();/*获取第一个子结点的名字*/
 
 }catch(Exception e){printf(e.getMessage());}

if(root==null)printf("root is null ");
 
if(root!=null)
{
NodeList lihao=root.getElementsByTagName(type); 
for(int i=0;i

/*获取子结点 A*/
String VA=getValue(i,lihao,String.valueOf(subNameList.get(0)));
String VB=getValue(i,lihao,String.valueOf(subNameList.get(1)));
/*生成一个流水号Produce_ID 并加入ProdList*/
ProdList.add(new Produce_ID(VA,VB));

printf(VA+"  "+VB);
}//end for
  }//end if
 
if(ProdList.size()>0)return ProdList; 
return null;
}

protected ArrayList getTypeList(){
 
 
 
 
 }

/*获取子结点子结点的值*/
public String getValue(int i,NodeList root,String type){
String value=null;
Element subNode=(Element)root.item(i);
NodeList subName=subNode.getElementsByTagName(type);
  
if(subName.getLength()==1){
Element e=(Element)subName.item(0);
Text t=(Text)e.getFirstChild();
value=String.valueOf(t.getNodeValue());

}
return value; 
 }
 
/*打印结果*/
private void printf(String content)
{
  System.out.println("type1=:"+content);
}

public static void main(String args[]){
    ReadConfigs rx=new ReadConfigs();
try{
 ArrayList a=rx.getProd_ID();
 for(int i=0;i System.out.println("a+b=:"+((Produce_ID)a.get(i)).getA()+"   "+((Produce_ID)a.get(i)).getB());
 
 }catch(Exception e){
 System.out.println("=:"+e.getMessage());
}
}

}

 


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"); 
 }
} 
 
 
 
 
 
 
 
 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7739550/viewspace-428165/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: javassssss
请登录后发表评论 登录
全部评论

注册时间:2008-08-14

  • 博文量
    10
  • 访问量
    5855