Здесь я имею структуру XML, какудалить узел xml на основе номера узла с помощью java?
<book> <!--node 0-->
<id>1111</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
<book> <!--node 1-->
<id>2222</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
<book> <!--node 2-->
<id>3333</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
На основе числа узлов, мне нужно, чтобы удалить этот узел целиком. Я могу получить номер узла и все дочерние узлы, но я не знаю, как deltet, может ли кто-нибудь вести меня, как это сделать.eg:node 0. необходимо удалить. Это то, что я пытался узел-не удалю:
File fXmlFile = new File(xmlfilePath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
NodeList nList = doc.getElementsByTagName("book");
Node nNode = nList.item(Integer.parseInt(nodeNumber));
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
String id = eElement.getElementsByTagName("id").item(0).getTextContent();
if ((id.equals(bookId))) {
eElement.getElementsByTagName("id").item(0).removeChild(nNode);
}
}
, пожалуйста, помогите мне, чтобы получить желаемый результат.
здесь вы идете http://stackoverflow.com/questions/3717215/remove-xml-node-using-java-parser – ppuskar
@ ppuskar, я не хочу использовать XPathFactory XPF = XPathFactory. newInstance(); XPath xpath = xpf.newXPath(); XPathExpression expression = xpath.compile ("// A/B [C/E/text() = 13]"); пожалуйста, направляйте меня – khanam