我必须使用sax开发一个android xml解析。
这是我的xml Feed:
<root>
<Categories>
<Category name="book">
<Articles>
<article articleid="170" title="java programming">
<thumb_image>
<image url="http://website/var/tmp/thumb_2536_design_pavitra-rajaram_1_thumb_dec2012__forfeed.jpeg"/>
</thumb_image>
<images>
<image url="http://food/dec2012/1_chef-olaf-niemeier_main_dec2012.jpg" alttext="Chef Olaf Niemeier"/>
<image url="http://food/dec2012/2_chutneys-from-hamburg_main_dec2012.jpg" alttext="Chef Olaf Niemeier"/>
</images>
</article>
<article articleid="171" title="Android programming">
<thumb_image>
<image url="http://website/var/tmp/thumb_2220_1_itc-grand-chola-chennai_main_dec2012__forfeed.jpeg"/>
</thumb_image>
<images>
<image url="http://food/dec2012/1_chef-olaf-niemeier_main_dec2012.jpg" alttext="Chef Olaf Niemeier"/>
<image url="http://food/dec2012/2_chutneys-from-hamburg_main_dec2012.jpg" alttext="Chef Olaf Niemeier"/>
</images>
</article>
</Article>
</Category>
<Category name="Animals">
<Articles>
<article articleid="81" title="Dog">
<thumb_image>
<image url="http://website/var/tmp/thumb_2220_1_itc-grand-chola-chennai_main_dec2012__forfeed.jpeg"/>
</thumb_image>
<images>
<image url="http://food/dec2012/1_chef-olaf-niemeier_main_dec2012.jpg" alttext="Chef Olaf Niemeier"/>
<image url="http://food/dec2012/2_chutneys-from-hamburg_main_dec2012.jpg" alttext="Chef Olaf Niemeier"/>
</images>
</article>
<article articleid="81" title="Cat">
<thumb_image>
<image url="http://website/var/tmp/thumb_2220_1_itc-grand-chola-chennai_main_dec2012__forfeed.jpeg"/>
</thumb_image>
<images>
<image url="http://food/dec2012/1_chef-olaf-niemeier_main_dec2012.jpg" alttext="Chef Olaf Niemeier"/>
<image url="http://food/dec2012/2_chutneys-from-hamburg_main_dec2012.jpg" alttext="Chef Olaf Niemeier"/>
</images>
</article>
</Article>
</Category>
</Categories>
我有类别名称和文章标题..但我没有得到图像..我可以得到图像..请帮助我......
我使用了以下代码:
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// reset
tempVal = "";
if (qName.equalsIgnoreCase("Category")) {
// create a new instance of Laptop
laptop = new Laptop();
laptop.setBrand(attributes.getValue("name"));
}
else if (qName.equalsIgnoreCase("article")) {
// create a new instance of Laptop
article = new Laptop();
article.setModel(attributes.getValue("title"));
}
else if (qName.equalsIgnoreCase("thumb_image")) {
// create a new instance of Laptop
image = new Laptop();
image.setImageURL(attributes.getValue("url"));
}
}
请给我这些解决方案......我怎样才能从thum_image标签中获取图片网址...
答案 0 :(得分:1)
为startElement和endElement使用处理程序。我建议你使用Stack作为解析器的成员。
private tagStack = new Stack();
public void startElement(String uri, String localName, String qName,
Attributes attributes) {
...
else if (qName.equals("image")) {
if ("thumb_image".equals(tagStack.peek())) {
image = new Laptop();
image.setImageURL(attributes.getValue("url"));
}
}
// make sure it is at the end of method
tagStack.push(qName);
}
public void endElement(String uri, String localName, String qName) {
...
tagStack.pop();
}
如果你只想要拇指图像而没有嵌套,你可以将bool in_thumb_image从startElement()设置为true,如果是qName ==“thumb_image”,则将endElement()设置为false。堆栈更通用。对于更高级别,您可以使用tagStack.search();
关闭主题。 XML区分大小写,在我看来不应该使用ignoreCase。