1) Biết cách tạo XML (tất nhiên rất nhiều bạn đã biết nó từ lâu)
2) Biết cách sử dụng XML
3) Biết cách duyệt XML bằng kỹ thuật DOM
4) Biết cách duyệt XML bằng kỹ thuật SAX.
- Dĩ nhiên bạn phải thực hiện được 2 bài ví dụ bên dưới thì mới có thể nói là hiểu về XML trong Android.
-Extensible Markup Language (XML): Các bạn xem chi tiết tại http://www.w3schools.com/xml/default.asp
———————————————————————————————————–
A)Kỹ thuật dùng DOM:
- DOM (Document Object Model ): Cache all – cơ chế của nó là đọc toàn bộ nội dung tập tin XML vào bộ nhớ (do đó nếu XML lớn thì làm chậm chương trình và có thể phung phí bộ nhớ vì không phải lúc nào ta cũng muốn đọc hết nội dung XML).
- DOM cho phép lấy: NodeLists, .getElementsByTagName() , .item(i), .getName() , .getValue() , .getFirstChild() , .getAttributes(),…
Ta lướt qua ví dụ này (cần dùng DOM để đọc XML bên dưới lên EditText):
- Ta đi vào các bước cụ thể để đọc được tập tin XML bằng DOM như sau:
——————————————————————————————————————–
Bước 1:
Để có thể sử dụng được kỹ thuật DOM trong Android, chúng ta import các thư viện sau (kể cả những thư viện để bắt lỗi):
import
javax.xml.parsers.DocumentBuilder;
import
javax.xml.parsers.DocumentBuilderFactory;
import
javax.xml.parsers.ParserConfigurationException;
import
org.w3c.dom.Document;
import
org.w3c.dom.Element;
import
org.w3c.dom.Node;
import
org.w3c.dom.NodeList;
import
org.xml.sax.SAXException;
import
java.io.FileInputStream;
import
java.io.FileNotFoundException;
import
java.io.IOException;
- Các bạn chú ý là trong quá trình viết code trong Eclipse, nó sẽ tự import tất cả các thư viện trên giùm ta (Bạn không phải gõ import dòng nào cả).
Bước 2:
Tạo đối tượng DocumentBuilder (builder ) bằng lệnh dưới đây:
DocumentBuilderFactory fac=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=fac.newDocumentBuilder();
Bước 3:
Tạo FileInputStream từ tập tin XML nguồn (ở đây Tôi để XML nguồn trong SD Card):
String sdcard=Environment.getExternalStorageDirectory().getAbsolutePath();
String xmlfile=sdcard+
"/employee.xml"
;
FileInputStream fIn=
new
FileInputStream(xmlfile);
Bước 4:
Dùng phương thức parse của đối tượng builder ở bước 2 để tạo Document
Document doc=builder.parse(fIn);
Bước 5:
Ta dựa vào đối tược doc được tạo ra ở bước 4 để duyệt từng node trong XML:
Element root= doc.getDocumentElement();
//lấy tag Root ra
NodeList list= root.getChildNodes();
// lấy toàn bộ node con của Root
String datashow=
""
;
//biến để lưu thông tin
for
(
int
i=
0
;i<list.getLength();i++)
// duyệt từ node đầu tiên cho tới node cuối cùng
{
Node node=list.item(i);
// mỗi lần duyệt thì lấy ra 1 node
if
(node
instanceof
Element)
// kiểm tra xem node đó có phải là Element hay không, vì ta dựa vào element để lấy dữ liệu bên trong
{
Element employee=(Element) node;
// lấy được tag Employee ra
String id=employee.getAttribute(
"id"
);
//id là thuộc tính của tag Employee
String title=employee.getAttribute(
"title"
);
//title là thuộc tính của tag employee
NodeList listChild= employee.getElementsByTagName(
"name"
);
// lấy tag name bên trong của tag Employee
String name=listChild.item(
0
).getTextContent();
//lấy nội dung của tag name
listChild=employee.getElementsByTagName(
"phone"
);
// lấy tag phone bên trong của tag Employee
String phone=listChild.item(
0
).getTextContent();
// lấy nội dung của tag phone</span>
datashow+=id+
"-"
+title+
"-"
+name+
"-"
+phone+
"\n---------\n"
;
//lưu vào biến lưu thông tin
}
}
//ta dựa vào datashow để hiển thị lên giao diện
- Bạn có thể tải code mẫu ở đây:http://www.mediafire.com/download/04q4rlg33nmrina/LearnXMLParser_DOM.rar (Tôi có đính kèm employee.xml trong project này, bạn chỉ việc kéo thả nó vào SD Card trong máy của bạn là ok).
0 nhận xét:
Đăng nhận xét