欢迎大家访问我的个人网站萌萌的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;    }}

更多相关文章

  1. 【Android(安卓)XML】Android(安卓)XML 转 Java Code 系列之 Sel
  2. [置顶] 深入了解Android进度条——ProgressBar,SeekBar和RatingBa
  3. Android判断后台Service服务是否运行,获取所有的服务
  4. Android(安卓)Studio中如何查看获取MD5和SHA1值(应用签名)
  5. WebView Android(安卓)调用js且需要获取返回结果
  6. android intent-filter
  7. android 开发文档翻译
  8. Android(安卓)之 自动拨号
  9. android Google Map获取地理位置信息的方法

随机推荐

  1. [AndroidTips]Declaring a custom androi
  2. 最新eclipse中android插件安装下载地址
  3. Android带返回值的窗口跳转
  4. android edittext 去边框 去下划线
  5. Android全透明Activity示例
  6. support-v4关联
  7. android中的两端对齐
  8. Android压缩
  9. 代码中如何设置TextView为不可见
  10. android tools命名空间