Greatings! Im intrest how can I pasre and insert new node in xml. For example we have
<UserCards>
<UserCard userCardId="ADC">
<userName>nameONE</userName>
<userSurname>surnameONE</userSurname>
<userAge>25</userAge>
<userAdress>adressONE</userAdress>
<userPhone>297718535</userPhone>
</UserCard>
<UserCard userCardId="AC6">
<userName>nameTWO</userName>
<userSurname>surnameTWO</userSurname>
<userAge>17</userAge>
<userAdress>adressTWO</userAdress>
<userPhone>557778899</userPhone>
</UserCard>
</UserCards>
And we need to parse it and find user with a 'userPhone' == 557778899 and insert in this card newNode and get
</UserCard>
<UserCard userCardId="AC6">
<userName>nameTWO</userName>
<userSurname>surnameTWO</userSurname>
<userAge>17</userAge>
<userAdress>adressTWO</userAdress>
<userPhone>557778899</userPhone>
<newNode>value</newNode>
</UserCard>
i was trying to to it like this but got nothing
File fXmlFile = new File("Test/UserCards.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
Element root = doc.getDocumentElement();
NodeList nList = doc.getElementsByTagName("UserCard");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node node = nList.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) node;
//here im trying to find userPhone == 557778899
if (userPhone.equals(eElement.getElementsByTagName("userPhone").item(0).getTextContent())) {
//this part does not work it was one of my try
NodeList nl = doc.getElementsByTagName("UserCards");
Element newNode= doc.createElement("newNode");
newNode.appendChild(doc.createTextNode("hello"));
eElement.appendChild(newNode);