How to insert a new element in xml schema using the below xpath /xs:schema[1]/xs:complexType[1]/xs:sequence[1]/xs:element[15]
i have tried this code, but xpath will not be able to locate into that location
try {
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(fileName);
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile("/xs:schema[1]/xs:complexType[1]/xs:sequence[1]/xs:element[15]");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
Text a = doc.createTextNode("value");
Element p = doc.createElement("newNode");
p.appendChild(a);
for (int i = 0; i < nodes.getLength(); i++) {
//nodes.item(i).insertBefore(p, nodes.item(i));
nodes.item(i).getParentNode().insertBefore(p, nodes.item(i));
}
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(doc), new StreamResult(fileName));
} catch (Exception e) {
e.printStackTrace();
}
pls help me on where i made a mistake and why my code will not be able to locate for given xpath.