Document解析xml遇到的问题~~

zhangyuehao 2010-04-06 05:32:50
XML文件内容:
- <ResList>
<page>0</page>
- <resItem>
<resName>WWW</resName>
</resItem>
- <resItem>
<resName>DDD</resName>
</resItem>
</ResList>


解析方法:
public void parseData(){
videoInfo = new LiveVideoInfo();
Element root = mDocument.getDocumentElement();

NodeList page = root.getElementsByTagName("page");
videoInfo.setCurrentPage(Integer.parseInt(page.item(0).getFirstChild().getNodeValue()));

NodeList resItem = root.getElementsByTagName("resItem");
Log.v("LiveVideoXmlParserByDom", ""+resItem.getLength());

for(int i=0;i<resItem.getLength();i++){
video = new LiveVideo();

Node itemNode = resItem.item(i);
//NodeList itemList = itemNode.getOwnerDocument().getDocumentElement();
Element root1= itemNode.getOwnerDocument().getDocumentElement();
NodeList resNameNode = root1.getElementsByTagName("resName");
if(resNameNode.item(0).getFirstChild()!=null)
video.setResName(resNameNode.item(0).getFirstChild().getNodeValue());

if(BaseData.DEBUG) Log.v("VideoAdapter",""+video.getResName());
video=null;
}
问题:resItem.getLength()获得的数据无误为2,但2次读到的video.getResName()数据都为WWW,而其无论我把
Node itemNode = resItem.item(i);改为Node itemNode = resItem.item(0);Node itemNode = resItem.item(1);
读到的数据还是为WWW,请高手指教。
...全文
195 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vclongking 2010-04-08
  • 打赏
  • 举报
回复
绑定 学习了
lingyu2843 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zcpangzi 的回复:]
NodeList resItem = root.getElementsByTagName("resName");

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

Node itemNode = resItem.item(i);
System.out.println(itemNode.getTextContent());

}
输出:
WWW……
[/Quote]
梦_枫 2010-04-07
  • 打赏
  • 举报
回复
http://blog.csdn.net/zhouyongyang621/archive/2010/04/06/5455670.aspx
这里面有几种解析方法,你看一下,可能能在里面找到你出错的原因吧
Life葡萄糖 2010-04-07
  • 打赏
  • 举报
回复
问题出在
for(int i=0;i<resItem.getLength();i++){
video = new LiveVideo();

Node itemNode = resItem.item(i);
Element root1= itemNode.getOwnerDocument().getDocumentElement();
NodeList resNameNode = root1.getElementsByTagName("resName");

虽然在for循环中,每次itemNode都不一样,但是通过Element root1= itemNode.getOwnerDocument().getDocumentElement();得到到root1都是相同的,即<ResList> 我已经试过了,因为root1是相同的,所以最后每次video.setResName(resNameNode.item(0).getFirstChild().getNodeValue()); 都是取得www


Life葡萄糖 2010-04-07
  • 打赏
  • 举报
回复
NodeList resItem = root.getElementsByTagName("resName");

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

Node itemNode = resItem.item(i);
System.out.println(itemNode.getTextContent());

}
输出:
WWW
DDD
zhangyuehao 2010-04-07
  • 打赏
  • 举报
回复
还是没找出原因,只能用SAX解析代替先了,郁闷~~
梦_枫 2010-04-06
  • 打赏
  • 举报
回复
android学习中,,帮顶吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧