Java中,Enumeratation+elements()方法用于什么类
发布时间:2025-05-20 00:32:18 发布人:远客网络
一、Java中,Enumeratation+elements()方法用于什么类
1、在Java中,Enumeration和elements()方法主要用于枚举(Enumeration)接口的实现类。Enumeration是Java中一个早期的接口,用于遍历集合或序列中的元素,它只有两个方法:hasMoreElements()和nextElement(),用于检查是否还有更多的元素和获取下一个元素。
2、在Java中,许多集合类都实现了Enumeration接口,例如Vector、Hashtable等。这些类都提供了一个elements()方法,该方法返回一个Enumeration对象,可以用来遍历集合中的元素。
3、例如,以下是一个使用Enumeration和elements()方法遍历Vector对象中元素的示例代码:
4、在上面的示例中,我们首先创建了一个Vector对象,并向其中添加了三个元素。然后,我们使用elements()方法获取了一个Enumeration对象,并在while循环中使用hasMoreElements()和nextElement()方法遍历了Vector对象中的所有元素,并将它们打印到控制台上。
5、总之,Enumeration和elements()方法用于遍历集合或序列中的元素,可以在许多集合类中使用,例如Vector、Hashtable等。
二、java 关于读取xml文件的问题
dom4j需要一个jar包网上有下载一搜很多的。
1.读取XML文件,获得document对象。
SAXReader reader= new SAXReader();
Document document= reader.read(new File("input.xml"));
2.解析XML形式的文本,得到document对象。
String text="<members></members>";
Document document= DocumentHelper.parseText(text);
Document document= DocumentHelper.createDocument();
Element root= document.addElement("members");//创建根节点
Element rootElm= document.getRootElement();
Element memberElm=root.element("member");//"member"是节点名
String text=memberElm.getText();也可以用:
String text=root.elementText("name");这个是取得根节点下的name字节点的文字
4.取得某节点下名为"member"的所有字节点并进行遍历
List nodes= rootElm.elements("member");
for(Iterator it= nodes.iterator(); it.hasNext();){
Element elm=(Element) it.next();
5.对某节点下的所有子节点进行遍历。
for(Iterator it=root.elementIterator();it.hasNext();){
Element element=(Element) it.next();
Element ageElm= newMemberElm.addElement("age");
parentElm.remove(childElm);// childElm是待删除的节点,parentElm是其父节点
Element root=document.getRootElement();
Attribute attribute=root.attribute("size");//属性名name
String text=attribute.getText();也可以用:
String text2=root.element("name").attributeValue("firstname");这个是取得根节点下name字节点的属性firstname的值
Element root=document.getRootElement();
for(Iterator it=root.attributeIterator();it.hasNext();){
Attribute attribute=(Attribute) it.next();
String text=attribute.getText();
newMemberElm.addAttribute("name","sitinspring");
Attribute attribute=root.attribute("name");
attribute.setText("sitinspring");
Attribute attribute=root.attribute("size");//属性名name
三、java怎样读取html文件
java读取html文件跟读取普通文件一样,都是使用输入输出流,但是java读取html文件之后还需要解析,使用Jsoup对html进行解析。下面是一个java读取带表格的任意html文件,并把html文件转换成excel的例子。
要求:要求能够实现给出任意带table表格的html文件,生成与表格相同内容的excel文件,附件可以作为测试文件,提供给定的roster.html文件,通过java代码,实现生成与html页面的table相同样式的roster.xls文件。
importjxl.write.WritableCellFormat;
importjxl.write.WritableSheet;
importjxl.write.WritableWorkbook;
importjxl.write.WriteException;
importjxl.write.biff.RowsExceededException;
importorg.jsoup.nodes.Document;
importorg.jsoup.nodes.Element;
importorg.jsoup.select.Elements;
publicstaticvoidmain(Stringargs[])throwsIOException{
///读取classpath目录下面的路径
Stringpath=HTMLTOExcel.class.getResource("/").getPath();
//得到Document并且设置编码格式
publicstaticDocumentgetDoc(StringfileName)throwsIOException{
Documentdoc=Jsoup.parse(myFile,"GBK","");
///这个方法用于根据trs行数和sheet画出整个表格
publicstaticvoidmergeColRow(Elementstrs,WritableSheetsheet)throwsRowsExceededException,WriteException{
for(inti=0;i<trs.size();i++){
Elementstds=tr.getElementsByTag("td");
for(intj=0;j<tds.size();j++){
realColNum=getRealColNum(rowhb,i,realColNum);
rowspan=Integer.parseInt(td.attr("rowspan"));
colspan=Integer.parseInt(td.attr("colspan"));
drawMegerCell(rowspan,colspan,sheet,realColNum,i,text,rowhb);
realColNum=realColNum+colspan;
///这个方法用于根据样式画出单元格,并且根据rowpan和colspan合并单元格
publicstaticvoiddrawMegerCell(introwspan,intcolspan,WritableSheetsheet,intrealColNum,intrealRowNum,Stringtext,int[][]rowhb)throwsRowsExceededException,WriteException{
Labellabel=newLabel(realColNum+j,realRowNum+i,text);
WritableFontcountents=newWritableFont(WritableFont.TIMES,10);//设置单元格内容,字号12
WritableCellFormatcellf=newWritableCellFormat(countents);
cellf.setAlignment(jxl.format.Alignment.CENTRE);//把水平对齐方式指定为居中
cellf.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//把垂直对齐方式指定为居
rowhb[realRowNum+i][realColNum+j]=1;
sheet.mergeCells(realColNum,realRowNum,realColNum+colspan-1,realRowNum+rowspan-1);
publicstaticintgetRealColNum(int[][]rowhb,inti,intrealColNum){
while(rowhb[i][realColNum]!=0){
///根据colgroups设置表格的列宽
publicstaticvoidsetColWidth(Elementscolgroups,WritableSheetsheet){
Elementcolgroup=colgroups.get(0);
Elementscols=colgroup.getElementsByTag("col");
for(inti=0;i<cols.size();i++){
Stringstrwd=col.attr("width");
intwd=Integer.parseInt(strwd);
//toExcel是根据html文件地址生成对应的xls
publicstaticvoidtoExcel(StringfileName,StringexcelName)throwsIOException{
///得到样式,以后可以根据正则表达式解析css,暂且没有找到cssparse
Elementsstyle=doc.getElementsByTag("style");
///得到Table,demo只演示输入一个table,以后可以用循环遍历tables集合输入所有table
Elementstables=doc.getElementsByTag("TABLE");
Elementstrs=table.getElementsByTag("tr");
Elementscolgroups=table.getElementsByTag("colgroup");
Stringpath=HTMLTOExcel.class.getResource("/").getPath();
WritableWorkbookbook=Workbook.createWorkbook(newFile(path));
WritableSheetsheet=book.createSheet("人事关系",0);
}catch(RowsExceededExceptione){
}
解析html文件的例子文档地址:
解析html文件的例子文档地址: