1.books.xml文件内容
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book price="99.0" 出版日期="2008年">疯狂Java讲义</book>
<book price="89.0" 出版日期="2009年">轻量级Java EE企业应用实战</book>
<book price="69.0" 出版日期="2009年">疯狂Ajax讲义</book>
</books>
2.MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.showbtn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//根据XML资源的ID获取解析该资源的解析器。
// XmlResourceParser是XmlPullParser的子类。
XmlResourceParser xrp = getResources().getXml(R.xml.books);
try
{
StringBuilder sb = new StringBuilder("");
//还没有到XML文档的结尾处
while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT)
{
//如果遇到了开始标签
if(xrp.getEventType() == XmlResourceParser.START_TAG)
{
//获取该标签的标签名
String tagName = xrp.getName();
//如果遇到book标签
if(tagName.equals("book"))
{
//根据属性名来获取属性值
String bookPrice = xrp.getAttributeValue(null , "price");
sb.append("价格:");
sb.append(bookPrice);
//根据属性索引来获取属性值
String bookPublic = xrp.getAttributeValue(1);
sb.append(" 出版日期:");
sb.append(bookPublic);
sb.append(" 书名:");
//获取文本节点的值
sb.append(xrp.nextText());
}
sb.append("\n");
}
//获取解析器的下一个事件
xrp.next();
}
EditText show = (EditText)findViewById(R.id.showedt);
show.setText(sb.toString());
}
catch (XmlPullParserException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}
3.实现效果