2014-02-17 34 views
0

我有一个像下面的XML饲料和正在使用的短途API为其解析:获取与每个不正确的输出在Java中

<item> 
    <pubdate>12 march 
    </pubdate> 
</item> 
<item> 
    <pubdate>15 march 
    </pubdate> 
</item> 

我写了下面的代码

Elements i =agent.doc.findEach("<item>"); 
{ 
    for (Element item: i) 
    { 
     String pubDate=i.findFirst("<pubDate><![CDATA[]]>").innerHTML(); 

     pubDate=new StringBuilder(new StringBuilder(pubDate.substring(9)).reverse().toString().substring(3)).reverse().toString(); 
     System.out.println(pubDate); 

我仍然得到相同的输出,如12 march12 march等,而不是12 march, 15 march

回答

0

问题是你打电话findFirst("<pubDate><![CDATA[]]>").innerHTML();i,而不是呼吁item

其次,你仍然可以获得所有12月的游行,因为你正在抓的饲料可能会在3月12日发布,但请注意时间。每种情况下都会有所不同。这意味着你的代码工作正常。

希望有所帮助。

编辑

没有必要使用StringBuilder.Here越短,精准。

Elements i=agent.doc.findEach("<item>"); 
      for(Element item:i) 
      { 
       System.out.println(item.findFirst("<pubDate>").findFirst(Comment.CDATA).getText()); 
      }