1
我無法弄清楚爲什麼我的下面的xml編寫器沒有保存到產品數組列表中。相反,我的程序沒有添加任何東西到列表中,並使用調試器,我發現數組列表的產品值始終是「size = 0」。我不知道爲什麼,我想從一個XML文件,這裏的列表中添加元素這個值是不會改變的是什麼我的代碼,這樣做看起來像:讀取XML文件中的數據並將其保存到數組
private static ArrayList<Product> readProducts()
{
ArrayList<Product> products = new ArrayList<>();
Product p = null;
XMLInputFactory inputFactory = XMLInputFactory.newFactory();
try
{
//create a stream reader object
FileReader fileReader = new FileReader("products.xml");
XMLStreamReader reader = inputFactory.createXMLStreamReader(fileReader);
//read XML file
while (reader.hasNext())
{
int eventType = reader.getEventType();
switch (eventType)
{
case XMLStreamConstants.START_ELEMENT :
String elementName = reader.getLocalName();
//get the product and its code
if (elementName.equals("Product"))
{
p = new Product();
String code = reader.getAttributeValue(0);
p.setCode(code);
}
// get the product description
if (elementName.equals("Description"))
{
String description = reader.getElementText();
p.setDescription(description);
}
// get the product price
if (elementName.equals("Price"))
{
String priceS = reader.getElementText();
double price = Double.parseDouble(priceS);
p.setPrice(price);
}
break;
case XMLStreamConstants.END_ELEMENT :
elementName = reader.getLocalName();
if(elementName.equals("product"))
{
products.add(p);
}
break;
}
reader.next();
}
}
catch (IOException | XMLStreamException e)
{
System.out.println(e);
}
return products;
}
'「產品」'不等於'「產品」'... – jlordo 2013-05-10 05:37:53
+1,jlordo ...... – 2013-05-10 05:39:55
這解決了這個問題非常感謝,我不知道爲什麼我從來沒有看到該p我一直在使用googling的東西,並在過去的一小時內檢查過我的代碼,並且這樣簡單的修復 – 2013-05-10 05:42:57