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

使用SAXParser从XML检索HTML编码的文本

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

使用SAXParser从XML检索HTML编码的文本

万一它对任何人都有帮助,我可以通过对我对数据感兴趣的每个字段使用布尔值来解决此问题。然后,我继续追加到StringBuilder,直到到达结束标记,此后,我获取StringBuilder值,然后将其清空,并将布尔值设置为false。

@Override    public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {        sb.delete(0, sb.length());        if (localName.equalsIgnoreCase("channel")) { inChannel = true; newFeed = new Feed(); itemList = new ArrayList<Item>();        }        if (inChannel) {  if (localName.equalsIgnoreCase("image")) {     feedImage = new Image();     inImage = true;     return; } else if (localName.equalsIgnoreCase("item")) {     newItem = new Item();     inItem = true;     return; } if(inImage) { //set booleans for image elements     if (localName.equalsIgnoreCase("title")) imgTitle = true;     else if (localName.equalsIgnoreCase("link")) imglink = true;     else if (localName.equalsIgnoreCase("url")) imgURL = true;     return; } else if(inItem) { //set booleans for item elements     if (localName.equalsIgnoreCase("title")) iTitle = true;     else if (localName.equalsIgnoreCase("link")) ilink = true;     else if (localName.equalsIgnoreCase("description")) iDescription = true;     else if (localName.equalsIgnoreCase("author")) iAuthor = true;     else if (localName.equalsIgnoreCase("category")) iCategory = true;     else if (localName.equalsIgnoreCase("comments")) iComments = true;     else if (localName.equalsIgnoreCase("guid")) iGuid = true;     else if (localName.equalsIgnoreCase("pubdate")) iPubDate= true;     else if (localName.equalsIgnoreCase("source")) iSource = true;     return; } else { //set booleans for channel elements     if (localName.equalsIgnoreCase("title")) fTitle = true;     else if (localName.equalsIgnoreCase("link")) flink = true;     else if (localName.equalsIgnoreCase("description")) fDescription = true;     else if (localName.equalsIgnoreCase("language")) fLanguage= true;     else if (localName.equalsIgnoreCase("copyright")) fCopyright = true;     else if (localName.equalsIgnoreCase("category")) fCategory = true;     return; }        }}    @Override    public void endElement(String uri, String localName, String qName) throws SAXException {        if(inChannel) { if(inImage) {     if (localName.equalsIgnoreCase("title")) {         feedImage.setTitle(sb.toString());         sb.delete(0, sb.length());         imgTitle = false;         return;     }     else if (localName.equalsIgnoreCase("link")) {         feedImage.setlink(sb.toString());         sb.delete(0, sb.length());         imglink = false;         return;     }     else if (localName.equalsIgnoreCase("url")) {         feedImage.setUrl(sb.toString());         sb.delete(0, sb.length());         imgURL = false;         return;     }     else return; }  else if(inItem) {     if (localName.equalsIgnoreCase("item")) {         itemList.add(newItem);         newItem = null;         inItem = false;         return;     } else if (localName.equalsIgnoreCase("title")) {         newItem.setTitle(sb.toString());          sb.delete(0, sb.length());         iTitle = false;         return;     } else if (localName.equalsIgnoreCase("link")) {         newItem.setlink(sb.toString());          sb.delete(0, sb.length());         ilink = false;         return;     } else if (localName.equalsIgnoreCase("description")) {         newItem.setDescription(sb.toString());          sb.delete(0, sb.length());         iDescription = false;         return;     } else if (localName.equalsIgnoreCase("author")) {         newItem.setAuthor(sb.toString());          sb.delete(0, sb.length());         iAuthor = false;         return;     } else if (localName.equalsIgnoreCase("category")) {         newItem.addCategory(sb.toString());          sb.delete(0, sb.length());         iCategory = false;         return;     } else if (localName.equalsIgnoreCase("comments")) {         newItem.setComments(sb.toString());         sb.delete(0, sb.length());         iComments = false;         return;     }  else if (localName.equalsIgnoreCase("guid")) {         newItem.setGuid(sb.toString());          sb.delete(0, sb.length());         iGuid = false;         return;     } else if (localName.equalsIgnoreCase("pubDate")) {         newItem.setPubDate(sb.toString());          sb.delete(0, sb.length());         iPubDate = false;         return;     } }  else {     if(localName.equalsIgnoreCase("channel")) {         newFeed.setItems((ArrayList<Item>)itemList);         finalFeed = newFeed;         newFeed = null;        inChannel = false;         return;     } else if(localName.equalsIgnoreCase("title")) {         newFeed.setTitle(currentValue);          sb.delete(0, sb.length());         fTitle = false;         return;     } else if(localName.equalsIgnoreCase("link")) {         newFeed.setlink(currentValue);          sb.delete(0, sb.length());         flink = false;         return;     } else if(localName.equalsIgnoreCase("description")) {         newFeed.setDescription(sb.toString());         sb.delete(0, sb.length());         fDescription = false;         return;     } else if(localName.equalsIgnoreCase("language")) {         newFeed.setLanguage(currentValue);          sb.delete(0, sb.length());         fLanguage = false;         return;     } else if(localName.equalsIgnoreCase("copyright")) {         newFeed.setCopyright(currentValue);          sb.delete(0, sb.length());         fCopyright = false;         return;     } else if(localName.equalsIgnoreCase("category")) {         newFeed.addCategory(currentValue);          sb.delete(0, sb.length());         fCategory = false;         return;     } }        }    }    @Override    public void characters(char[] ch, int start, int length) {        sb.append(new String(ch, start, length));    }


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

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

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