繁体   English   中英

如何在Java XML中添加月份

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM