簡體   English   中英

在Java中使用各自獲取不正確的輸出

[英]Getting incorrect output with the for each in Java

我有一個如下所示的XML feed,並且正在使用Jaunt API進行解析:

<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 march 12 march 12 march 12 march等,而不是12 march 15 march 12 march 15 march

問題是您正在調用findFirst("<pubDate><![CDATA[]]>").innerHTML(); i ,改為在item上調用它。

其次,您可能仍會獲得全部3月12日的信息,因為您要抓取的Feed可能會在3月12日發布,但要注意時間。 在每種情況下都會有所不同。 這意味着您的代碼運行良好。

希望能有所幫助。

編輯

無需使用StringBuilder,這是更簡短,更精確的代碼。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM