Greatings! Im intrest, как я могу сделать pasre и вставить новый узел в xml. Например, мы имеемКак вставить новый узел в существующий xml-файл
<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>
И нам нужно разобрать его и найти пользователя с == «userPhone» 557778899 и вставить в этой карточной newNode и получить
</UserCard>
<UserCard userCardId="AC6">
<userName>nameTWO</userName>
<userSurname>surnameTWO</userSurname>
<userAge>17</userAge>
<userAdress>adressTWO</userAdress>
<userPhone>557778899</userPhone>
<newNode>value</newNode>
</UserCard>
я пытался к ней, как это ничего не получило
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);
Решена ли ваша проблема? Есть что-то еще, что вам нужно? – lscoughlin