android-从xml中根据parent tag获取child tag

问题描述

从xml中根据parent tag获取child tag
我用的下面的xml

<Point scount =""1"">  <Image name=""app.png"" /></Point>

我需要解析 xml ,就像首先要 ,然后我需要选择 tag。
如何从xml中根据parent tag获取child tag呢?
我用下面的代码从 image tag 中取出值。

NodeList image = doc.getElementsByTagName(""Image"");String imagess = ((Element)image.item(imageindex)).getAttribute(""name"");

如何实现?

解决方案

public void parsersXml() {

//实例化一个文档构建器工厂

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

try {

//通过文档构建器工厂获取一个文档构建器

DocumentBuilder db = dbf.newDocumentBuilder();

//通过文档通过文档构建器构建一个文档实例

Document doc = db.parse(""student.xml"");

//获取所有名字为 “person” 的节点

NodeList nl1 = doc.getElementsByTagName(""Point"");

int size1 = nl1.getLength();

             System.out.println(""该名称的节点长度为:"" + size1);                   for (int i = 0; i < size1; i++) {                         Node n = nl1.item(i);                         System.out.println(""***""+n.getNodeName()+""t""+n.getNodeName().length());                     NamedNodeMap  nm= n.getAttributes();                     int len_m=nm.getLength();                     for(int k=0;k<len_m;k++){                         System.out.println(""属性名:""+nm.item(k).getNodeName()+""t  属性值:""+nm.item(k).getNodeValue());                     }                     if(nl1.item(i).getChildNodes().getLength()>0){                         for(int z=0;z<nl1.item(i).getChildNodes().getLength();z++){                             System.out.println(nl1.item(i).getChildNodes().item(z).getNodeName());                             if(nl1.item(i).getChildNodes().item(z).getAttributes()!=null){                                 int len_ls=nl1.item(i).getChildNodes().item(z).getAttributes().getLength();                                 if(len_ls>0){                                     for(int x=0;x<len_ls;x++){                                         System.out.println(""属性名:""+nl1.item(i).getChildNodes().item(z).getAttributes().item(x).getNodeName()+""t  属性值:""+nl1.item(i).getChildNodes().item(z).getAttributes().item(x).getNodeValue());                                     }                                 }                             }                         }                     }                 //获取 n 节点下所有的子节点。此处值得注意,在DOM解析时会将所有回车都视为 n 节点的子节点。                   NodeList nl2 = n.getChildNodes();                   //因为上面的原因,在此例中第一个 n 节点有 2 个子节点,而第二个 n 节点则有 5 个子节点(因为多了3个回车)。                   int size2 = nl2.getLength();                   System.out.println(""N节点的第一个子节点的长度为:"" + size2);                   for (int j = 0; j < size2; j++) {                       Node n2 = nl2.item(j);                       NamedNodeMap  nm1= n2.getAttributes();                    if(nm1==null){                        break;                    }                     int len_m1=nm1.getLength();                     for(int j1=0;j1<len_m1;j1++){                         System.out.println(""""+nm1.item(j1).getNodeName()+""t""+nm1.item(j1).getNodeValue());                     }                     //还是因为上面的原因,故此要处判断当 n2 节点有子节点的时才输出。                       if (n2.hasChildNodes()) {                           System.out.println(n2.getNodeName() + "" = "" +                                              n2.getFirstChild().getNodeValue());                       }                   }               }           } catch (ParserConfigurationException ex) {               ex.printStackTrace();           } catch (IOException ex) {               ex.printStackTrace();           } catch (SAXException ex) {               ex.printStackTrace();           }       }  
时间: 2024-10-28 18:31:15

android-从xml中根据parent tag获取child tag的相关文章

Android string.xml中的替换方法_Android

本文实例讲述了Android string.xml中的替换方法.分享给大家供大家参考,具体如下: 在android的开发中,经常会遇见一句话,比如"我今年23岁了":这个23需要在程序中生成,但是遇到一个问题,这完整的一句话是一个TextView中的,而不是三个textView拼接成的,而且是引用的string.xml文件中写好的:使用字符串拼接也可以实现,但是特别麻烦: 今天遇到一个好方法,在string.xml中,不仅可以设置文字的格式换行等,还可以设置类似于变量的文本格式: 1.

Android string.xml中的替换方法

本文实例讲述了Android string.xml中的替换方法.分享给大家供大家参考,具体如下: 在android的开发中,经常会遇见一句话,比如"我今年23岁了":这个23需要在程序中生成,但是遇到一个问题,这完整的一句话是一个TextView中的,而不是三个textView拼接成的,而且是引用的string.xml文件中写好的:使用字符串拼接也可以实现,但是特别麻烦: 今天遇到一个好方法,在string.xml中,不仅可以设置文字的格式换行等,还可以设置类似于变量的文本格式: 1.

android string.xml中的string样式总结

<b></b>加粗字体 <i></i> 斜体字体 <u></u> 给字体加下划线 \n 换行 \u0020表示空格 \u2026表示省略号 使用<b>和<b>来打印出<b></b> 这样的文字:"<"表示"<"的意思: 使用textView.setText(Html.fromHtml("Hello <b>World

如何在XML中定义菜单_Android

和Android UI layout一样,我们也可以在XML中定义应用程序的菜单.通过在菜单的onCreateOptionsMenu方法中膨胀菜单layout.这样做会使我们的程序代码简单多了,而且尽可能的将更多的界面设计部分放到XML,便于浏览. 1. 在工程的/res/文件夹下创建menu文件夹,用来保存你为应用程序定义的菜单XML文件. 在菜单XML layout中,有三个有效的元素:menu.group.item.item和group必须是menu的子元素,且item必须是group的子

如何在AndroidManifest.xml中获取android:targetPackage的值?

问题描述 如何在AndroidManifest.xml中获取android:targetPackage的值? 根据 Junit 测试代码,如何在 Junit 的测试程序中的 Manifest 中访问 android:targetPackage 的值? 我想提取 ""com.mycompany.mytestapp"" <?xml version=""1.0"" encoding=""utf-8"

android 从资源中获取数组

   8.1.1.概述 除了在Java代码中定义数组,Android还提供了在资源中定义数组,然后在Java代码中解析资源,从而获取数组的方法. 实际开发中,推荐将数据存放在资源文件中,以实现程序的逻辑代码与数据分离,便于项目的管理,尽量减少对Java代码的修改. 8.1.2.在资源中定义数组 步骤1.在res/values文件夹下创建arrays.xml文件: 步骤2.在arrays.xml文件中创建一个数组,如下代码所示: <?xml version="1.0" encodi

详解Android XML中引用自定义内部类view的四个why_Android

今天碰到了在XML中应用以内部类形式定义的自定义view,结果遇到了一些坑.虽然通过看了一些前辈写的文章解决了这个问题,但是我看到的几篇都没有完整说清楚why,于是决定做这个总结. 使用自定义内部类view的规则 本文主要是总结why,所以先把XML布局文件中引用内部类的自定义view的做法摆出来,有四点: 1.自定义的类必须是静态类: 2.使用view作为XML文件中的tag,注意,v是小写字母,小写字母v,小写字母v: 3.添加class属性,注意,没有带android:命名空间的,表明该自

详解Android XML中引用自定义内部类view的四个why

今天碰到了在XML中应用以内部类形式定义的自定义view,结果遇到了一些坑.虽然通过看了一些前辈写的文章解决了这个问题,但是我看到的几篇都没有完整说清楚why,于是决定做这个总结. 使用自定义内部类view的规则 本文主要是总结why,所以先把XML布局文件中引用内部类的自定义view的做法摆出来,有四点: 1.自定义的类必须是静态类: 2.使用view作为XML文件中的tag,注意,v是小写字母,小写字母v,小写字母v: 3.添加class属性,注意,没有带android:命名空间的,表明该自

android开发-自定义roundProgressBar,在xml中定义组件属性,无法生效

问题描述 自定义roundProgressBar,在xml中定义组件属性,无法生效 我从网上找到了自定义roundProgressBar的代码,使用之后,发现在xml中定义组建的属性没有作用,生成的roundProgressBar只是使用了默认配置 attributes: <!-- max 最大进度 startAngle 进度从圆环的哪个角度开始走 backColor 圆环内部的填充色 roundColor 圆环的颜色 roundProgressColor 圆环进度的颜色 roundWidth