XML解析之dom

xml一共有三种解析放方法
①DOM解析
②SAX解析
③Android内置的Pull解析

getChildNodes()-获取某个元素(节点)的子节点;
getNodeType()-获取某个元素(节点)类型;
getAttribute()-获取某个元素(节点)的属性值;
getNodeValue()-获取节点值(文本内容)
getNodeName()-获取节点名称
getFirstChild()-获取某节点下的第一个子节点
getTextContent()-获取某节点下的文本内容

第一种 解析三层的
①DOM解析

//创建工厂类
            DocumentBuilderFactory newInstance = DocumentBuilderFactory.newInstance();
            //创建DocumentBuilder
            DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
            //创建Document
    Document parse = newDocumentBuilder.parse(getAssets().open("asas.xml"));
            //获取根元素
Element documentElement = parse.getDocumentElement();
            //得到当前节点属性
             String attribute = documentElement.getAttribute("category");
//           textView.append(attribute+"\n");
            //获取到元素集合
NodeList elementsByTagName = documentElement.getElementsByTagName("item");
             //遍历
            for (int i = 0; i <elementsByTagName.getLength(); i++) {
                //得到当前的节点对象
Element element= (Element) elementsByTagName.item(i);
                //得到节点元素
                String id = element.getAttribute("id");
                String name = element.getElementsByTagName("name").item(0).getTextContent();
//              String ide = element.getElementsByTagName("ide").item(0).getTextContent();
                String sex = element.getElementsByTagName("sex").item(0).getTextContent();
                String age = element.getElementsByTagName("age").item(0).getTextContent();
//              textView.append(id+"\n");
//              textView.append(name+"\n");
//              textView.append(age+"\n");
//              textView.append(ide+"\n");
                dao.insert(new User(name, age, sex));

//第一种 解析四层的
①DOM解析

    //创建工厂
            DocumentBuilderFactory newInstance = DocumentBuilderFactory.newInstance();
            //创建DocumentBuilder
  DocumentBuilder builder = newInstance.newDocumentBuilder();
            //创建Document
Document parse = builder.parse(getAssets().open(str));
            //获取根元素
            Element element = parse.getDocumentElement();
            //获取元素集合
            NodeList childNodes = element.getChildNodes();
    for (int i = 0; i < childNodes.getLength(); i++) {
                    //得到当前节点对象
                 Node item = childNodes.item(i);
        if ("china".equals(item.getNodeName())) {

    Element element2=(Element) childNodes.item(i);
NodeList elementsByTagName = element2.getElementsByTagName("book");
for (int j = 0; j < elementsByTagName.getLength(); j++) {
Element element3=(Element) elementsByTagName.item(j);
    String name = element3.getElementsByTagName("name").item(0).getTextContent();
    String price = element3.getElementsByTagName("price").item(0).getTextContent();
String author = element3.getElementsByTagName("author").item(0).getTextContent();
        list2.add(new Books(name, author, price));

                    }

                } else if ("foreiner".equals(item.getNodeName())) {
    Element element2=(Element) childNodes.item(i);
NodeList elementsByTagName = element2.getElementsByTagName("book");
for (int j = 0; j < elementsByTagName.getLength(); j++) {

Element element3=(Element) elementsByTagName.item(j);
String name = element3.getElementsByTagName("name").item(0).getTextContent();
    String price = element3.getElementsByTagName("price").item(0).getTextContent();
    String author = element3.getElementsByTagName("author").item(0).getTextContent();


                        list2.add(new Books(name, author, price));
                    }
                }
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值