Tôi phân tích các tệp xml tương tự. Đây là một ví dụ. Bạn sẽ cần phải thêm kiểm tra lỗi khi thích hợp.
void loadXML(XmlPullParser xpp) {
int eventType = xpp.next();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG && 0 == XML_ELEMENT_TAG.compareTo(xpp.getName())) {
loadElement(xpp);
}
eventType = xpp.next();
}
}
private void loadElement(XmlPullParser xpp) {
int eventType = xpp.getEventType();
if (eventType == XmlPullParser.START_TAG && 0 == XML_ELEMENT_TAG.compareTo(xpp.getName())) {
eventType = xpp.next();
while (eventType != XmlPullParser.END_TAG || 0 != XML_ELEMENT_TAG.compareTo(xpp.getName())) {
if (eventType == XmlPullParser.START_TAG && 0 == XML_ITEM_TAG.compareTo(xpp.getName())) {
loadItem(xpp);
}
eventType = xpp.next();
}
}
}
private void loadItem(XmlPullParser xpp) {
int eventType = xpp.getEventType();
if (eventType == XmlPullParser.START_TAG && 0 == XML_ITEM_TAG.compareTo(xpp.getName())) {
eventType = xpp.next();
while (eventType != XmlPullParser.END_TAG || 0 != XML_ITEM_TAG.compareTo(xpp.getName())) {
// Get attributes.
String attr = xpp.getAttributeValue(null, XML_MY_ATTR);
String text = null;
// Get item text if present.
eventType = xpp.next();
while (eventType != XmlPullParser.END_TAG || 0 != XML_ITEM_TAG.compareTo(xpp.getName())) {
if (eventType == XmlPullParser.TEXT) {
text = xpp.getText();
}
eventType = xpp.next();
}
eventType = xpp.next();
}
}
}
Nếu chuỗi là tất cả những gì bạn đang theo dõi, tại sao bạn không chỉ sử dụng tệp strings.xml. Nó đơn giản hơn rất nhiều. –
nếu bạn muốn văn bản không có thẻ, bạn có thể sử dụng String.replace với một regex hoặc một cái gì đó – njzk2
Tôi không chắc chắn về ý của bạn. strings.xml từ Android SDK? đây là tệp của bên thứ ba mà tôi cần phân tích – butelo