Cho mình hỏi về parse xml trong java
có 1 file xml , mình muốn đọc file xml đó rồi chuyển nội dung của nó vào 1 cái arraylist , sau đó dùng arraylist đó đổ dữ liệu vào 1 jtable . tìm trên mạng có đoạn code vd nhưng mình ko biết làm sao để đổ dữ liệu vào arraylist:
one.xml
<StudentList>
<student studentId="s01" gender="male">
<name>Nguyen quan tuyen</name>
<age>25</age>
</student>
<student studentId="s02" gender="female">
<name>Nguyen Thi Hoa</name>
<age>30</age>
</student>
<student studentId="s03" gender="female">
<name>Nguyen Thi Hoa Huong</name>
<age>35</age>
</student>
class product:
public class Product {
private String name;
private String age;}
class saxprocess : xu li xml
public class saxprocess extends DefaultHandler {
boolean ageFound;
boolean nameFound;
Product p= new Product();
public ArrayList<Product> array = new ArrayList<Product>();
//@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if (qName.equals("name")) {
nameFound = true;
}
if (qName.equals("age")) {
ageFound = true;
}
}
//@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String str = new String(ch, start, length);
str = str.trim();
if (nameFound) {
System.out.println(" Name:" + str);
nameFound = false;//ket thuc mot element;
}
if (ageFound)
System.out.println(" Age:" + str);
ageFound = false;
}
}
class run:
public class test {
public static void main(String[] args) throws IOException
{
saxprocess sax=new saxprocess();//tao mot doi tuong cua saxprocess.
String path="src\lab1\one.xml";
SAXParserFactory saxpaser=SAXParserFactory.newInstance();
try {
SAXParser parser = saxpaser.newSAXParser();
File F=new File(path);
parser.parse(F, sax);
} catch (ParserConfigurationException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
} catch (SAXException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}
} }
mình muốn set name với age vào product p , sau đó add từng p vào arraylist , mà cho mình hỏi hàm startelement() và characters() nó tự chạy hay sao mà ko thấy gọi , và mấy cái tham số đầu vào nó có ý nghĩ gì vậy
mình nghĩ hướng giải quyết của bạn hiện tại đang bị sai.
Bạn có thể coi link dưới.
http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/
okê làm được hết rồi…