首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析两个同名为android的元素

解析两个同名为android的元素
EN

Stack Overflow用户
提问于 2013-09-04 04:46:53
回答 2查看 186关注 0票数 0

我对XML和Android的开发有点陌生.我遇到了这样的问题:我需要解析元素相同的XML,并将其包含在整个元素中。这有点难以解释,请参见下面的代码:

代码语言:javascript
复制
<tns:camera>

<tns:congestionLocations>
<tns:congestion>Free Flow</tns:congestion>
<tns:direction>Eastbound</tns:direction>
</tns:congestionLocations>

<tns:congestionLocations>
<tns:congestion>Free Flow</tns:congestion>
<tns:direction>Westbound</tns:direction>
</tns:congestionLocations>


<tns:description>Bond St looking east</tns:description>
<tns:direction>Eastbound</tns:direction>
<tns:group>SH16-North-Western</tns:group>
<tns:lat>-36.869</tns:lat>
<tns:lon>174.746</tns:lon>
<tns:name>SH16 1 Bond St</tns:name>
<tns:viewUrl>http://www.trafficnz.info/camera/view/130</tns:viewUrl>
</tns:camera>

基本上,我需要解析整个元素(tns:camera)并包含拥塞位置(显然是彼此分开的),但是在相同的类中,因为我将在一个列表视图中使用它们……

我怎样才能做到这一点?

目前,我正在使用拉解析器,并将其解析为类对象。

PullParser代码:

代码语言:javascript
复制
case XmlPullParser.END_TAG:
                    if (tagname.equalsIgnoreCase(KEY_SITE)) {current Site
                        CameraSites.add(curCameraClass);
                    } else if (tagname.equalsIgnoreCase(KEY_DESCRIPTION)) {

                        curCameraClass.setDescription(curText);
                    }else if (tagname.equalsIgnoreCase(KEY_NAME)) {
                        curCameraClass.setName(curText);
                    }

                    break;

亲切的问候!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-04 05:08:09

试试这个..。

代码语言:javascript
复制
        NodeList nodeList = doc.getElementsByTagName("tns:camera");

                for (int i = 0; i < nodeList.getLength(); i++) {

                    Node node = nodeList.item(i);       

                    Element fstElmnt = (Element) node;
                    NodeList nameList = fstElmnt.getElementsByTagName("tns:group");
                    Element nameElement = (Element) nameList.item(0);
                    nameList = nameElement.getChildNodes();

                    System.out.println("tns:group : "+((Node) nameList.item(0)).getNodeValue());


                    Element fstElmnt1 = (Element) node;
                    NodeList nameList1 = fstElmnt1.getElementsByTagName("tns:viewUrl");
                    Element nameElement1 = (Element) nameList1.item(0);
                    nameList1 = nameElement1.getChildNodes();

                    System.out.println("tns:viewUrl : "+ ((Node) nameList1.item(0)).getNodeValue());

//same as use to all tns:description,tns:direction and tns:lat etc.,


                    if(node.getNodeType() == Node.ELEMENT_NODE)
                    {
                        Element e = (Element) node;
                        NodeList resultNodeList = e.getElementsByTagName("tns:congestionLocations");
                        int resultNodeListSize = resultNodeList.getLength();
                        for(int j = 0 ; j < resultNodeListSize ; j++ )
                        {
                            Node resultNode = resultNodeList.item(j);
                            if(resultNode.getNodeType() == Node.ELEMENT_NODE)
                            {
                                Element fstElmnt2 = (Element) resultNode;
                                NodeList nameList2 = fstElmnt2.getElementsByTagName("tns:congestion");
                                Element nameElement2 = (Element) nameList2.item(0);
                                nameList2 = nameElement2.getChildNodes();

                                Log.v("tns:congestion", ""+((Node) nameList2.item(0)).getNodeValue());

                                Element fstElmnt3 = (Element) resultNode;
                                NodeList nameList3 = fstElmnt3.getElementsByTagName("tns:direction");
                                Element nameElement3 = (Element) nameList3.item(0);
                                nameList3 = nameElement3.getChildNodes();

                                Log.v("tns:direction--", ""+((Node) nameList3.item(0)).getNodeValue());
                            }
                        }
                    }

                }
票数 0
EN

Stack Overflow用户

发布于 2013-09-04 04:53:20

您可以使用SAXParser来解析xml。希望以下链接将有所帮助:

developersite

基础教程

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18605574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档