【问题标题】:Parsing XML data Using Sax Parser使用 Sax Parser 解析 XML 数据
【发布时间】:2014-01-16 05:42:57
【问题描述】:

我在 android 中工作,需要帮​​助来解析以下 XML 数据并将其显示在列表视图中。我正在使用 Sax Parser 来解析数据

<NotifyList>
<Notify><Name>Raj</Name><Age>12</Age><Status>1</Status></Notify>

<Notify><Name>G</Name><Age>11</Age><Status>2</Status></Notify>

<Notify><Name>D</Name><Age>21</Age><Status>1</Status><Mobile>23232324</Mobile></Notify>

<Notify><Name>erwer</Name><Age>3</Age><Status>2</Status><Mobile>235534</Mobile></Notify>

<NotifyList>

在上面的 xml 数据中,您可以发现第一行和第二行缺少 Mobile 标记。如果标签不存在,我必须检查标签是否存在,我需要将其附加到列表视图中的空值,如下所示。

姓名1 年龄>

姓名2 年龄>

姓名3 年龄Ph 号>

姓名4 年龄Ph 号>

谢谢, 古瑟姆

【问题讨论】:

  • 使用google推荐的xmlpullparser。

标签: android xml


【解决方案1】:
 ArrayList<String> parsedtxt =new ArrayList<String>();


           try {   
                SAXParserFactory factory = SAXParserFactory.newInstance();
                SAXParser saxParser = factory.newSAXParser();

                DefaultHandler handler = new DefaultHandler() {
                boolean partxt = false;


                @Override
                public void startElement(String uri, String localName,
                String qName, Attributes attributes)
                throws SAXException {               

                if (qName.equalsIgnoreCase("Notify")) {
                    partxt = true;
                }


                }



                @Override
                public void endElement(String uri, String localName,
                String qName) throws SAXException {
                // TODO Auto-generated method stub          
                }

                @Override
                public void characters(char[] ch, int start, int length)
                throws SAXException {
                // TODO Auto-generated method stub

                if (partxt) {
                System.out.println("Product : " + new String(ch, start, length).trim());
                parsedtxt.add(new String(ch, start, length).trim());


                }


                }
                     };
                     asset = this.getAssets();
                     in = asset.open(xmlnam+"det.xml");

                     saxParser.parse(in, handler);

                     } catch (Exception e) {

                     }

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    相关资源
    最近更新 更多