Есть xml:
<Info>
<info_1/>
<info_2/>
<info_3>
<i ID="1"/>
<i ID="2"/>
<i ID="3"/>
</info_3>
<info_4>
</indo_4>
</Info>
Мне нужно удалить определенный node в info_3, например node в котором ID=1, как мне это сделать?
Я попробовал сделать так, но log показывает до и после length=3;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new InputSource(new StringReader(bb)));
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("i");
Log.e("LOG", "nList.getLength() = " + nList.getLength());
Node node=nList.item(1);
node.getParentNode().removeChild(node);
Log.e("LOG", "nList.getLength() = " + nList.getLength());
Решение, которое мне помогло:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new InputSource(new StringReader(bb)));
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("i");
Log.e("LOG", "nList.getLength() = " + nList.getLength());
Set<Element> targetElements = new HashSet<>();
for (int i = 0; i < nList_Loan_guarantor.getLength(); i++) {
Element e = (Element)nList_Loan_guarantor.item(i);
if ("10938".equals(e.getAttribute("ID"))) {
targetElements.add(e);
}
}
for (Element e: targetElements) {
e.getParentNode().removeChild(e);
}
doc.getDocumentElement().normalize();
NodeList nList_2 = doc.getElementsByTagName("i");
Log.e("LOG", "nList.getLength() = " + nList.getLength());
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть два тестовых файлаКак удалить дубликаты строк из первого файла, которые содержатся в другом файле? Файлы на 500 000 строк и больше
При переходе с фильтра на jsp страницу, на странице некорректно отображаются русские символыПробовал уже много решений с различных сайтов,...
Есть приложение, в нем постыЛайки, сделал следующим образом: