1

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.

RAAAAM
  • 3,378
  • 19
  • 59
  • 108

0 Answers0