0

So i have this XML code that i used to pull information about some books. Now i need to sort it by the price and time of publish.

I parsed price with Double.parseDouble but i can't parse date, because date is in other format.

try {
            File inputFile = new File("XML.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(inputFile);
            doc.getDocumentElement().normalize();
            System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
            NodeList nList = doc.getElementsByTagName("book");
            System.out.println("----------------------------");

            for (int temp = 0; temp < nList.getLength(); temp++) {
                Node nNode = nList.item(temp);

                Element eElement = (Element) nNode;
                double cena = Double.parseDouble(eElement.getElementsByTagName("price").item(0).getTextContent());
                double datum = Double.parseDouble(eElement.getElementsByTagName("publish_date").item(0).getTextContent());
                if (nNode.getNodeType() == Node.ELEMENT_NODE && cena > 10.0 && datum > 2005) {
                System.out.println("\nCurrent Element :" + nNode.getNodeName());  
                System.out.println("First Name : " 
                + eElement
                .getElementsByTagName("author")
                .item(0)
                .getTextContent());
                System.out.println("Title : " 
                + eElement
                .getElementsByTagName("title")
                .item(0)
                .getTextContent());
                System.out.println("Genre : " 
                + eElement
                .getElementsByTagName("genre")
                .item(0)
                .getTextContent());
                System.out.println(cena);
                System.out.println(datum);
                System.out.println("Description : " 
                + eElement
                .getElementsByTagName("description")
                .item(0)
                .getTextContent());
                }
            }
       }


//U see, the price(`cena`) is bigger than 10.0, butt the date(datum) should be bigger than 2005. 
<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications 
      with XML.</description>
   </book>
   <book id="bk102">
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2002-12-16</publish_date>
      <description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</description>
   </book>
   <book id="bk103">
      <author>Corets, Eva</author>
      <title>Maeve Ascendant</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-11-17</publish_date>
      <description>After the collapse of a nanotechnology 
      society in England, the young survivors lay the 
      foundation for a new society.</description>
   </book>
   <book id="bk104">
      <author>Corets, Eva</author>
      <title>Oberon's Legacy</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2001-03-10</publish_date>
      <description>In post-apocalypse England, the mysterious 
      agent known only as Oberon helps to create a new life 
      for the inhabitants of London. Sequel to Maeve 
      Ascendant.</description>
   </book>
   <book id="bk105">
      <author>Corets, Eva</author>
      <title>The Sundered Grail</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2001-09-10</publish_date>
      <description>The two daughters of Maeve, half-sisters, 
      battle one another for control of England. Sequel to 
      Oberon's Legacy.</description>
   </book>
   <book id="bk106">
      <author>Randall, Cynthia</author>
      <title>Lover Birds</title>
      <genre>Romance</genre>
      <price>4.95</price>
      <publish_date>2003-09-02</publish_date>
      <description>When Carla meets Paul at an ornithology 
      conference, tempers fly as feathers get ruffled.</description>
   </book>
   <book id="bk107">
      <author>Thurman, Paula</author>
      <title>Splish Splash</title>
      <genre>Romance</genre>
      <price>4.95</price>
      <publish_date>2004-11-02</publish_date>
      <description>A deep sea diver finds true love twenty 
      thousand leagues beneath the sea.</description>
   </book>
   <book id="bk108">
      <author>Knorr, Stefan</author>
      <title>Creepy Crawlies</title>
      <genre>Horror</genre>
      <price>4.95</price>
      <publish_date>2005-12-06</publish_date>
      <description>An anthology of horror stories about roaches,
      centipedes, scorpions  and other insects.</description>
   </book>
   <book id="bk109">
      <author>Kress, Peter</author>
      <title>Paradox Lost</title>
      <genre>Science Fiction</genre>
      <price>6.95</price>
      <publish_date>2006-11-02</publish_date>
      <description>After an inadvertant trip through a Heisenberg
      Uncertainty Device, James Salway discovers the problems 
      of being quantum.</description>
   </book>
   <book id="bk110">
      <author>O'Brien, Tim</author>
      <title>Microsoft .NET: The Programming Bible</title>
      <genre>Computer</genre>
      <price>36.95</price>
      <publish_date>2006-12-09</publish_date>
      <description>Microsoft's .NET initiative is explored in 
      detail in this deep programmer's reference.</description>
   </book>
   <book id="bk111">
      <author>O'Brien, Tim</author>
      <title>MSXML3: A Comprehensive Guide</title>
      <genre>Computer</genre>
      <price>36.95</price>
      <publish_date>2007-12-01</publish_date>
      <description>The Microsoft MSXML3 parser is covered in 
      detail, with attention to XML DOM interfaces, XSLT processing, 
      SAX and more.</description>
   </book>
   <book id="bk112">
      <author>Galos, Mike</author>
      <title>Visual Studio 7: A Comprehensive Guide</title>
      <genre>Computer</genre>
      <price>49.95</price>
      <publish_date>2008-04-16</publish_date>
      <description>Microsoft Visual Studio 7 is explored in depth,
      looking at how Visual Basic, Visual C++, C#, and ASP+ are 
      integrated into a comprehensive development 
      environment.</description>
   </book>
</catalog>
peckie
  • 39
  • 1
  • 8
  • Possible duplicate of [Compare two dates in Java](https://stackoverflow.com/questions/3144387/compare-two-dates-in-java) – GalAbra Jun 20 '19 at 06:59
  • Please [edit] your question to include the content of the XML file you trying to parse/read. If possible, post the documentation of the XML file as well, something like the DTD or the XSD of the XML file. – Progman Jun 20 '19 at 09:12
  • It's unnecessary for my question... – peckie Jun 20 '19 at 17:09
  • My question is, how to parse this double datum, so i can put it in if to be grater than 2005. – peckie Jun 20 '19 at 17:13
  • @peckie You usually don't parse a date as a double value, that's why you should [edit] your question to include the XML file. That way we can see the source data and can help accordingly. – Progman Jun 20 '19 at 18:04
  • @peckie Please see https://stackoverflow.com/questions/4216745/java-string-to-date-conversion on how to parse a string, which looks like a date, to an actual java `Date` object to work with. – Progman Jun 20 '19 at 19:00
  • @Progman Can you, please, write the code that might work on mine. Because i was trying all of this in past two days. – peckie Jun 21 '19 at 09:33

0 Answers0