Hashtable 和Vector的问题

HarlanC 2007-05-15 08:53:21
private Vector tagHistory=new Vector();
private Vector countHistory=new Vector();
Hashtable tagCounts = (Hashtable)countHistory.elementAt(tagHistory.size());
这句话该怎么理解呢?vector的值能复给hashtable么?
...全文
276 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
HarlanC 2007-05-15
  • 打赏
  • 举报
回复
它是怎样实现分层的以及标记层位置的,看不懂
HarlanC 2007-05-15
  • 打赏
  • 举报
回复
package xmlparsing1;
import java.util.*;
import java.io.*;
public interface WebParser
{
public Vector getElements(File file)throws Exception;

}


package xmlparsing1;
import java.util.*;
import java.io.*;
public class WebParserWrapper
{
public Vector getElements(File file)throws Exception
{
Vector elements=new Vector();
WebParser webParser=new XMLPaserWrapper();
elements =webParser.getElements(file);
}

}
HarlanC 2007-05-15
  • 打赏
  • 举报
回复
这是搜到的部分源代码,是基于SAX 的XML嵌套信息提取,但不全,请帮忙侃侃,我是新手,没接触过这方面的东西
package xmlparsing1;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;
import java.util.*;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;


public class XMLParserWrapper extends DefaultHandler implements WebParser
{
private Vector tagHistory=new Vector();//记录在分析的过程中所在XML树中的位置
private Vector countHistory=new Vector();//记录每一种标记在它所在层中的位置
private Vector elements = new Vector(); //存放最后结果元素
int tagCountInt;//记录一层中该类标记的数量
public Vector getElements(File file)
{
//初始化变量

//创建XML分析器
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
parser.parse(file,this);
return elements;
}
public void startElement
( String namespaceURI,String localName,String qName,Attributes attr )
throws SAXException
{
String tag = qName.toString();
//更新标记在本层中的个数
Hashtable tagCounts = (Hashtable)countHistory.elementAt(tagHistory.size());// 返回指定索引处的组件
Integer tagCountInteger = (Integer)tagCounts.get(tag);
if(tagCountInteger!=null)
tagCountInt=tagCountInteger.intValue();
tagCountInt+=1;
tagCounts.remove(tag);// 从哈希表中移除该键及其相应的值。
tagCounts.put(tag,new Integer(tagCountInt));//put(K key, V value)
//将标记压入堆栈并重新开始记数
tagHistory.addElement(tag+"["+tagCount+"]");
countHistory.addElement(new Hashtable());
}
public void endElement( String namespaceURI,String localName,String qName )
throws SAXException
{
if(tagHistory.size()>0)//弹出栈顶标记
{
tagHistory.remove(tagHistory.size()-1);
countHistory.remove(countHistory.size()-1);
}
}
public void characters( char[] ch, int start, int length )
throws SAXException
{
for(int ti=0;ti<tagHistory.size();ti++)
{
tagKey=tagKey+"."+tagHistory.elementAt(ti);
elements.addElement(new SourceElement(tagKey+".#pc data[0]",thisText));
}

}

}
flyforlove 2007-05-15
  • 打赏
  • 举报
回复
Vector里面可以放任何东西。

但你的Vector都还是空的

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧