你在這裏。這隻能找到基於日期的部分。我沒有顯示添加到JList,因爲這很容易。只需更改打印ADD的打印語句,你就可以走了。
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<date>\n" +
"<aug30>\n" +
" <item1>This is an item for August 30</item1>\n" +
" <item2>This is another item for August 30</item2>\n" +
"</aug30>\n" +
"<aug31>\n" +
" <item1>This is an item for August 31</item1>\n" +
" <item2>This is another item for August 31</item2>\n" +
" <item3>This is a 3rd item for August 31</item3>\n" +
"</aug31>\n" +
"</date>\n";
SimpleDateFormat df = new SimpleDateFormat("MMMd");
String date = df.format(new Date()).toLowerCase();
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(xml)));
DocumentTraversal traversal = (DocumentTraversal) doc;
NodeIterator iterator = traversal.createNodeIterator(
doc.getDocumentElement(), NodeFilter.SHOW_ELEMENT, null, true);
for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
String tagname = ((Element) n).getTagName();
//System.out.println("Compare TAG: '" + tagname + "' with '" + date + "'");
if(tagname.equals(date)) {
n = iterator.nextNode();
tagname = ((Element) n).getTagName();
while(tagname.startsWith("item") && n != null) {
System.out.println("ADD: " + ((Element)n).getTextContent());
n = iterator.nextNode();
if(n != null) {
tagname = ((Element) n).getTagName();
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
的進口:
import java.io.StringReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.traversal.DocumentTraversal;
import org.w3c.dom.traversal.NodeFilter;
import org.w3c.dom.traversal.NodeIterator;
import org.xml.sax.InputSource;
好了,JList的日常需求不同的項目,其項目不是一個定數。有些日子可能沒有,而其他日子可能有6件。所以標籤aug30和aug31將代表8月30日和8月31日的日期,並且在那些日子裏只會加載正確標籤之間的項目。例如,今天是8月31日。我只需要將aug31標籤之間的項目加載到JList中。 – Ryan
謝謝,這是什麼進口? – Ryan
添加進口到答案 – nuzz