[英]How to add month in java xml
我目前正在研究xml數據項目。 到目前為止,我已經使用dom解析器成功將data.xml文件連接到Java項目。 此外。 我還能夠獲取節點值並在控制台上打印。 我現在正在努力的是要在主類的結尾處編寫一個邏輯循環,目的是將開始日期的月份增加一個,例如1/1/2002-> 2/1/2002- > 3/1/2002。 我的日期格式為MM/dd/yyyy
。 我在下面的代碼中顯示了我目前擁有的一部分。 我們將為您提供幫助。 謝謝。
data.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<data>
<username>theBigAristotle</username>
<startdate>01/01/2002</startdate>
<enddate>01/31/2002</enddate>
</data>
main.java
public class main
{
public static void main(String[] args)
{
Calendar cal =null;
String username = null;
String startdate = null;
String enddate = null;
String date = null;
String date_end = null;
try {
//read the xml file
File data = new File("data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(data);
doc.getDocumentElement().normalize();
NodeList nodes = doc.getElementsByTagName("data");
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
username = getValue("username", element);
startdate = getValue("startdate", element);
enddate = getValue("enddate", element);
}
}
date = startdate;
//initial date
Date date_int = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH).parse(date);
cal = Calendar.getInstance();
cal.setTime(date_int);
//end date
Date end_date = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH).parse(enddate);
Calendar end_date_cal = Calendar.getInstance();
end_date_cal.setTime(end_date);
date = date_end;
//write the content in xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("data.xml"));
transformer.transform(source, result);
} catch (Exception ex) {
log.error(ex.getMessage());
ex.printStackTrace();
}
private static String getValue(String tag, Element element) {
NodeList nodes = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodes.item(0);
return node.getNodeValue();
}
private static void setValue(String tag, Element element , String input) {
NodeList nodes = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodes.item(0);
node.setTextContent(input);
}
此代碼為日期添加了一個月
final String sdate = "2012-01-01";
final SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd" );
final Date date = df.parse( sdate ); // conversion from String
final java.util.Calendar cal = GregorianCalendar.getInstance();
cal.setTime( date );
cal.add( GregorianCalendar.MONTH, 1 ); // date manipulation
System.out.println( "result: " + df.format( cal.getTime() ) ); // conversion to String
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.