Reputation: 487
I want to get as a result a TagName "control". I am using XPath to parse my XML file. Currently I get only a blank window, I don't know why.
My XML file:
<tags>
<row Id="1" TagName="soccer" Count="7" ExcerptPostId="12371" WikiPostId="12370" />
<row Id="2" TagName="servos" Count="63" ExcerptPostId="186" WikiPostId="185" />
<row Id="3" TagName="control" Count="394" ExcerptPostId="192" WikiPostId="191" />
<row Id="5" TagName="gait" Count="4" ExcerptPostId="12362" WikiPostId="12361" />
</tags>
Here is my Main.java
String uri = "/home/files/Tags.xml";
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(uri);
XPath xPath = XPathFactory.newInstance().newXPath();
String output = (String) xPath.evaluate("/tags/row[@TagName='control']", doc.getDocumentElement(),
XPathConstants.STRING);
System.out.println("My output:" + output);
} catch (IOException | ParserConfigurationException | XPathExpressionException | SAXException e) { }
The expected output should be:
My output: control
Upvotes: 0
Views: 56
Reputation: 11832
You are getting an exception which you are silently consuming. Add e.printStackTrace()
to the catch block to find out what it is.
Assuming you fix that problem, you also appear to be using an xpath to select the text content of an element that is empty (self-closed).
If you want to select the value of an attribute of an element you need to do something like:
/tags/row[@TagName='control']/@TagName
See this SO post for more information: Getting attribute using XPath
Upvotes: 1