Android 中原始的xml文件一般保存在/res/xml路径下,在用ADT开发中没有该文件,需要自己去创建一个xml的文件夹
成功定义一个xml资源后,在工程中若要引用该xml文件
1 在xml文件中引用语法
xml.file_name
2 在java代码中语法格式:
R.xml.file_name;
在java程序中获取实际的xml文档,可以通过Resources的两个方法来获取:
1 XmlResourceParse getXml(int id): 获取xml文档,并 使用一个XmlPullParser来解析该xml文档,该方法返回一个解析器对象
2 InputStream openRawResource(int id) :获取XML文档对应的输出流
代码:
<?xml version="1.0" encoding="utf-8"?>
<books>
<book price="99.0" time="2011" >Ajax讲义</book>
<book price="99.0" time="2009" >疯狂android讲义</book>
<book price="99.0" time="2010" >Ajax讲义</book>
</books>
java代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.btn1);
OnClickListener listen = new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
XmlResourceParser xrp = getResources().getXml(R.xml.books);//获取xml文档
try
{
StringBuilder sb = new StringBuilder("");
while(xrp.getEventType() != XmlResourceParser.END_DOCUMENT)//判断有没有到文档的结尾处
{
if(xrp.getEventType() == XmlResourceParser.START_TAG)//遇到开始标签
{
String tagName = xrp.getName();//获取标签的标签名
if(tagName.equals("book"))
{
String bookprice = xrp.getAttributeValue(null, "price");
sb.append("价格");
sb.append(bookprice);
String booktime = xrp.getAttributeValue(1);//通过属性索引来获取属性值
sb.append(" 出版日期");
sb.append(booktime);
sb.append("书名");
sb.append(xrp.nextText());//获取文本节点的值
}
sb.append("\n");
}
xrp.next();//光标下移
}
TextView show = (TextView)findViewById(R.id.text1);
show.setText(sb.toString());
}
catch(XmlPullParserException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
};
btn.setOnClickListener(listen);
}