fork download
  1. import java.io.StringReader;
  2. import javax.xml.parsers.DocumentBuilder;
  3. import javax.xml.parsers.DocumentBuilderFactory;
  4. import javax.xml.xpath.XPath;
  5. import javax.xml.xpath.XPathConstants;
  6. import javax.xml.xpath.XPathFactory;
  7. import org.w3c.dom.Document;
  8. import org.w3c.dom.NodeList;
  9. import org.xml.sax.InputSource;
  10.  
  11. class Ideone {
  12. public static void main(String[] args) throws Exception {
  13. String schema = "<xs:schema xmlns:xs=\"http://w...content-available-to-author-only...3.org/2001/XMLSchema\" targetNamespace=\"http://x...content-available-to-author-only...e.com/cloud/adapter/nxsd/surrogate/request\"\r\n" +
  14. " xmlns=\"http://x...content-available-to-author-only...e.com/cloud/adapter/nxsd/surrogate/request\"\r\n" +
  15. " elementFormDefault=\"qualified\">\r\n" +
  16. "<xs:element name=\"myapp\">\r\n" +
  17. " <xs:complexType>\r\n" +
  18. " <xs:sequence>\r\n" +
  19. " <xs:element name=\"content\">\r\n" +
  20. " <xs:complexType>\r\n" +
  21. " <xs:sequence>\r\n" +
  22. " <xs:element name=\"EmployeeID\" type=\"xs:string\" maxOccurs=\"1\" minOccurs=\"0\"/>\r\n" +
  23. " <xs:element name=\"EName\" type=\"xs:string\" maxOccurs=\"1\" minOccurs=\"0\"/>\r\n" +
  24. " </xs:sequence>\r\n" +
  25. " </xs:complexType>\r\n" +
  26. " </xs:element>\r\n" +
  27. " <xs:element name=\"attribute\">\r\n" +
  28. " <xs:complexType>\r\n" +
  29. " <xs:sequence>\r\n" +
  30. " <xs:element name=\"item\" type=\"xs:integer\" maxOccurs=\"1\" minOccurs=\"0\"/> \r\n" +
  31. " </xs:sequence>\r\n" +
  32. " </xs:complexType>\r\n" +
  33. " </xs:element>\r\n" +
  34. " </xs:sequence>\r\n" +
  35. " </xs:complexType>\r\n" +
  36. "</xs:element>\r\n" +
  37. "</xs:schema>\r\n";
  38. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  39. DocumentBuilder builder = factory.newDocumentBuilder();
  40. Document doc = builder.parse(new InputSource(new StringReader(schema)));
  41.  
  42. XPathFactory xPathFactory = XPathFactory.newInstance();
  43. XPath xPath = xPathFactory.newXPath();
  44.  
  45. String expression = "//element[@name='myapp']//element[@name='content']";
  46. NodeList nodeList = (NodeList) xPath.evaluate(expression,doc, XPathConstants.NODESET);
  47.  
  48. System.out.println("Node count: " + nodeList.getLength());
  49. }
  50. }
Success #stdin #stdout 0.36s 42732KB
stdin
Standard input is empty
stdout
Node count: 1