I am trying to fetch value from xml using xpath. Take this mock xml for example
<?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body></SOAP-ENV:Body></SOAP-ENV:Envelope>
When I am trying to fetch value from this string using xpath string with this program: -
public static String getXPathValue(String stringSource) {
String stringCompile = "/SOAP-ENV:Envelope";
StringBuilder stringBuilder = new StringBuilder();
XPathFactory pathFactory = XPathFactory.newInstance();
XPath path = pathFactory.newXPath();
try {
XPathExpression pathExpression = path.compile(stringCompile);
Object result = pathExpression.evaluate(new InputSource(
new StringReader(stringSource)), XPathConstants.STRING);
if (result instanceof String) {
stringBuilder.append(result.toString());
}
} catch (XPathExpressionException e) {
e.printStackTrace();
}
System.out
.println("Returned string is "+stringBuilder.toString());
return stringBuilder.toString();
}
It returns me an empty string instead of the expected
<SOAP:ENV:Envelope xmlns:SOAP:ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:ENV:Header/>
<SOAP:ENV:Body/></SOAP:ENV:Envelope>
Can u please suggest me what I am doing wrong.