0

I am trying to do same thing to this post but I am getting the XPathExpressionException, "javax.xml.transform.TransformerException: A location step was expected following the '/' or '//' token."

My expression seems to be incorrect. Can someone help me with this please?

for (String tag : tags) {
MapVariableResolver vr = new MapVariableResolver();
vr.addVariable(new QName(null, tag),tag);
xPath.setXPathVariableResolver(vr);
StringBuffer expression = new StringBuffer("//$tag/text()");
XPathExpression expr = xPath.compile(expression.toString());
nodeList = (NodeList) expr.evaluate(doc,XPathConstants.NODESET);
Community
  • 1
  • 1
Qajussi
  • 133
  • 1
  • 3
  • 12

1 Answers1

0

You are creating a variable based on tag's value rather than on the "tag" string :

vr.addVariable(new QName(null, tag),tag);

Use this instead :

vr.addVariable(new QName(null, "tag"),tag);
Aaron
  • 24,009
  • 2
  • 33
  • 57