に他の機能によってアクセスすることがカント以下のコードはReadXMLFileコンストラクタ要素が同じJavaファイル
ReadXMLFile r=new ReadXMLFile("small.xml");
HashMap r=r.getrcset();
を呼び出して、私はReadXMLFileによって呼び出されるアップデートは、fnを使用してsathiyaのハッシュマップを更新していますコンストラクタ。そのうまくいっている(つまり、要素はsathiya hashmapに追加されています)。なぜなら、私はそれを印刷することができるからです。 getrcsetファイルではsathiya hashmapは空です。私はそれを印刷しようとしている間、私は0を得る:{} 1:{}。私は質問のタイトルとあなたのこのラインによって完全に混乱していますけれどもYに
package iws.falcon.matcher.pbm;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import java.util.HashMap;
import java.util.Iterator;
import java.util.*;
public class ReadXMLFile {
public HashMap sathiya = new HashMap();
String filepath=null;
int cid=0;
int f=0;
HashMap rc=null;
public HashMap getrcset()
{
System.out.println("inside getsathiya"+sathiya.size());
Set set = sathiya.entrySet();
// Get an iterator
Iterator i = set.iterator();
// Display elements
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
System.out.println("god"+sathiya);
return sathiya;
}
public void update(HashMap god)
{
sathiya.put(cid,god);
for (int i=0,n=sathiya.size();i<n;i++)
System.out.println("inside update fn"+sathiya.get(i));
cid++;
}
public ReadXMLFile (String fp)
{
filepath=fp;
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
boolean name = false;
boolean cluster=false;
public void startElement(String uri, String localName,String qName,
Attributes attributes) throws SAXException {
if (qName.equalsIgnoreCase("CLUSTER"))
{rc=new HashMap();
}`enter code here`
if (qName.equalsIgnoreCase("URI")) {
name = true;
}
}
public void endElement(String uri, String localName,
String qName) throws SAXException {
if (qName.equalsIgnoreCase("CLUSTER"))
{
update(rc);
rc.clear();
}
}
public void characters(char ch[], int start, int length) throws SAXException {
if (name)
{
String e= new String(ch, start, length);
rc.put(e,e);
name = false;
}
}
};
saxParser.parse("small.xml", handler);
} catch (Exception e) {
e.printStackTrace();
}
}
}
私はrc hashmapについて語っていません。 。私はrcset hashmapについて話しています。 。私は、更新機能でrcsetの要素を追求していますが、私はrcsetの要素にプログラムのどこにでもアクセスすることができません。 。私はrcsetをどこか別の場所に印刷しようとしたとき、0:{}、1:{} ..のように要素が空になります。 – user1368126
あなたが投稿したコードにはrcとsathiyaがあります。 rcsetマップ? – mprabhat
ああ申し訳ございませんが、ハッシュマップのみです。 。私はrcsetをsathiyaに改名しました。 。 – user1368126