栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android:如何显示相同标签名称的所有XML值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android:如何显示相同标签名称的所有XML值

其他响应已经指出,您需要一个列表来存储

ParsedExampleDataSet
从XML获取的所有对象。

但是,我想将您的注意力转移到XML处理程序的另一件事上,它可能只会在以后(随机)咬住您。字符方法不是在XML中分配在标记之间找到的值的好地方,因为不能保证字符方法一次返回一个元素中的所有字符。可以在同一元素中多次调用该命令以报告到目前为止找到的字符。通过现在的实现,您最终将丢失数据并想知道发生了什么。

就是说,我将使用a

StringBuilder
来积累您的字符,然后在
endElement(...)
通话中分配它们。像这样:

public class ExampleHandler extends DefaultHandler{ // =========================================================== // Fields // =========================================================== private StringBuilder mStringBuilder = new StringBuilder(); private ParsedExampleDataSet mParsedExampleDataSet = new ParsedExampleDataSet(); private List<ParsedExampleDataSet> mParsedDataSetList = new ArrayList<ParsedExampleDataSet>(); // =========================================================== // Getter & Setter // =========================================================== public List<ParsedExampleDataSet> getParsedData() {      return this.mParsedDataSetList; } // =========================================================== // Methods // ===========================================================  @Override public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {    if (localName.equals("PhonebookEntry")) {        this.mParsedExampleDataSet = new ParsedExampleDataSet();    } }  @Override public void endElement(String namespaceURI, String localName, String qName)throws SAXException {      if (localName.equals("PhonebookEntry")) {this.mParsedDataSetList.add(mParsedExampleDataSet);      }else if (localName.equals("firstname")) {mParsedExampleDataSet.setfirstname(mStringBuilder.toString().trim());      }else if (localName.equals("lastname"))  {          mParsedExampleDataSet.setlastname(mStringBuilder.toString().trim());      }else if(localName.equals("Address"))  {          mParsedExampleDataSet.setAddress(mStringBuilder.toString().trim());      }      mStringBuilder.setLength(0); }  @Overridepublic void characters(char ch[], int start, int length) {      mStringBuilder.append(ch, start, length);}}

然后,您可以在活动中检索ParsedExampleDataSets的列表,并显示在多个文本视图中或仅在一个文本视图中显示。您的

Activity.onCreate(...)
方法可能类似于:

    @Override    public void onCreate(Bundle icicle) {         super.onCreate(icicle);                  TextView tv = new TextView(this);         try {      URL url = new URL("http://somedomain.com/jm/sampleXML.xml");   URLConnection ucon = url.openConnection();      ExampleHandler myExampleHandler = new ExampleHandler();   //remember to import android.util.Xml   Xml.parse(url.openStream(), Xml.Encoding.UTF_8, myExampleHandler);      List<ParsedExampleDataSet> parsedExampleDataSetList =myExampleHandler.getParsedData();      for(ParsedExampleDataSet parsedExampleDataSet : parsedExampleDataSetList){       tv.append(parsedExampleDataSet.toString());   }         } catch (Exception e) {      tv.setText("Error: " + e.getMessage());         }                  this.setContentView(tv);    }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464323.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号