import org.w3c.dom.*;
import org.xml.sax.InputSource;
import org.apache.xerces.parsers.DOMParser;
import org.apache.xpath.XPathAPI;
import org.apache.xpath.objects.XObject;

import java.io.FileInputStream;

public class test
{
  public static void printNodes(NodeList nodes)
  {
    System.out.println("Found " + nodes.getLength() + " node(s)");
    for(int i = 0; i < nodes.getLength(); i++)
    {
      System.out.println(nodes.item(i).getNodeName());
    }
    System.out.println("End of Nodes");
    System.out.println();
  }
  

  public static void main(String[] args) throws Exception
  {
    DOMParser parser = new DOMParser();
    parser.parse(new InputSource(new FileInputStream("xmlTest.xml")));
    XObject queryResult = XPathAPI.eval(parser.getDocument(), "//IDECard");
    NodeList nodes = queryResult.nodelist();

    printNodes(nodes);
    
    for(int i = 0; i < nodes.getLength(); i++)
    {
      Node curNode = nodes.item(i);
      printNodes(XPathAPI.eval(curNode, "//Linux").nodelist());
      printNodes(XPathAPI.eval(curNode, "/PC/IDECard/HardDisc").nodelist());
    }
  }
}
