[英]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.