android之xml解析
16lz
2021-01-26
欢迎大家访问我的个人网站萌萌的IT人,后续所有的文章都会在此发布
--------------------------------------------------------------------------------------------
简单介绍一下我在用DOM解析方法时遇到的问题:
获取节点的属性时,老是出错误,后面经过多方查找
终于解决,方法如下:
data[i] = nChild.getAttributes().getNamedItem("data").getNodeValue();
其中"data"为属性的名字.
源代码如下:
public class test extends Activity implements OnClickListener { File fl; private final String net = "http://www.google.com/ig/api?hl=zh-cn&weather="; private final String st = "beijing"; private String addr; private String str; ListView lv; ArrayAdapter<String> adapter; private EditText et; private TextView tv; private TextView tv1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bt = (Button) findViewById(R.id.bt); bt.setOnClickListener(this); et = (EditText) findViewById(R.id.et); } @Override public void onClick(View agr0) { // TODO Auto-generated method stub addr = et.getText().toString(); switch (agr0.getId()) { case R.id.bt: if (!addr.trim().equals("")) { //获取输入的内容,取出空格 addr = net + addr; String[] data = null; //Node nRoot = root(addr,"weather").item(0); //将weather设置为根节点 Node nRoot = root(addr,"forecast_information").item(0); NodeList child = nRoot.getChildNodes(); //获得孩子结点 int childSize = child.getLength(); //获得子节点的个数 6 data = new String[childSize]; for (int i = 0; i < childSize; i++) { Node nChild = child.item(i); //第一个子节点,city if (nChild.hasAttributes()) { //获得子节点//获得节点属性data[i] = nChild.getAttributes().getNamedItem("data").getNodeValue(); } tv = (TextView) findViewById(R.id.tv); tv.setText("city : " + data[1]); tv1 = (TextView) findViewById(R.id.tv2); tv1.setText("date :" + data[4]); } } setTitle(et.getText().toString()); //显示查询的城市 break; } } //} private NodeList root(final String url , final String str){ NodeList root = null; try{ InputSource is=new InputSource(new InputStreamReader(new URL(url).openStream())); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder dom = factory.newDocumentBuilder(); Document doc = dom.parse(is); root = doc.getElementsByTagName(str); }catch (Exception e){ e.printStackTrace(); } return root; }}
更多相关文章
- 【Android(安卓)XML】Android(安卓)XML 转 Java Code 系列之 Sel
- [置顶] 深入了解Android进度条——ProgressBar,SeekBar和RatingBa
- Android判断后台Service服务是否运行,获取所有的服务
- Android(安卓)Studio中如何查看获取MD5和SHA1值(应用签名)
- WebView Android(安卓)调用js且需要获取返回结果
- android intent-filter
- android 开发文档翻译
- Android(安卓)之 自动拨号
- android Google Map获取地理位置信息的方法