fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import org.w3c.dom.Document;
  7. import org.xml.sax.InputSource;
  8. import javax.xml.xpath.*;
  9. import javax.xml.parsers.*;
  10.  
  11. /* Name of the class has to be "Main" only if the class is public. */
  12. class Ideone
  13. {
  14. public static void main (String[] args) throws java.lang.Exception
  15. {
  16. String xmlInputString = "<root>" +
  17. "<something>" +
  18. "<metadata name=\"user\" story=\"{some_text_here}\" extraStory=\"{don't want this}\" />" +
  19. "<metadata name=\"user\" story=\"{some_text_here}\" />" +
  20. "<metadata name=\"notAnUser\" story=\"{maybe_text_here}\" />" +
  21. "</something>" +
  22. "<somethingElse/>" +
  23. "</root>";
  24. DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
  25.  
  26. Document xmlInputDoc = docBuilder.parse(new InputSource(new StringReader(xmlInputString)));
  27.  
  28. XPath x = XPathFactory.newInstance().newXPath();
  29. XPathExpression ex = x.compile("//metadata[@name='user' and @story and count(@*) = 2]/@story");
  30. System.out.println(ex.evaluate(xmlInputDoc));
  31. }
  32. }
Success #stdin #stdout 0.08s 842752KB
stdin
Standard input is empty
stdout
{some_text_here}