我有关于XML和java.util.List的问题。在我的脚本中,我能够从输入解析XML文件,系统写入我,例如[124,123],[123,130](根据输入文件中的内容。)但我的问题是 - 如何将值从xList和yList传递给paint方法?我需要做什么?设定/获得价值?或者可能有更好的方法来做到这一点。感谢
我的剧本的一部分:
try
{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
MyDefaultHandler handler = new MyDefaultHandler();
saxParser.parse(filechooser.getSelectedFile(), handler);
System.out.println(handler.getXList() + ", " + handler.getYList());
}
catch (Exception exe)
{
exe.printStackTrace();
}
}
}
class MyDefaultHandler extends DefaultHandler
{
final List<Integer> xList = new ArrayList<Integer>();
final List<Integer> yList = new ArrayList<Integer>();
boolean xele = false;
boolean yele = false;
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
{
if (qName.equalsIgnoreCase("X"))
{
xele = true;
}
if (qName.equalsIgnoreCase("Y"))
{
yele = true;
}
}
public void characters(char ch[], int start, int length) throws SAXException
{
if (xele)
{
System.out.println("X value : " + new String(ch, start, length));
xele = false;
xList.add(Integer.parseInt(new String(ch, start, length)));
}
if (yele)
{
System.out.println("Y value : " + new String(ch, start, length));
yele = false;
yList.add(Integer.parseInt(new String(ch, start, length)));
}
;
}
final List<Integer> getXList()
{
return xList;
}
final List<Integer> getYList()
{
return yList;
}
答案 0 :(得分:2)
如果我理解你的问题,并期望这些名单的长度相同,你需要这样的东西:
for (int i=0; i<xList.size(); i++) { paint(xList.get(i),yList.get(i)); }