Я пытаюсь удалить узлы <CELL>
из узла XML, содержащего атрибут some
. Я получаю следующую ошибку: // NOT_FOUND_ERR: сделана попытка референирования узла в контексте, где он не существует.
Вот что я сделали
XPath xpath = new XPathFactory().newXPath();
String expr = "descendant-or-self::*[contains(@x,'some')]";
XPathExpression exprCc = xpath.compile(expr);
NodeList titleNodeList = (NodeList) exprCc.evaluate(Document d, XPathConstants.NODESET);//11
int numberOfNodesToBeRemoved; //Could be anynumber less than titleNodeList.getLength()
NodeList table = root.getElementByTagName("Table");
Nodelist cellsNodeList = (Element)table.item(0).getElementsByTagName("cells");
for(int x=0;x<cellsNodeList.length;x++){
Node cells = cellsNodeList.item(x);
for (int c = 0; c < numberOfNodesToBeRemoved; c++ +) {
System.out.println("numberOfNodesToBeRemoved : " + numberOfNodesToBeRemoved); //1
Node titleNode = titleNodeList.item(numberOfNodesToBeRemoved);
System.out.println("Parent Node : " + titleNode.getParentNode().getParentNode());
//Cell
cells.removeChild(titleNode.getParentNode().getParentNode()); //NOT_FOUND_ERR: An
//attempts made to referene a node in a context where it does not exist.
}
}
Вот мой образец XML
<ab>
{multiple nodes}
<Table>
<Cells>
<Cell>
<CellContents>
<Title x="someAttribute">
</CellContents>
</Cell>
<Cell>
<CellContents>
<Title x="differentAttribute">
</CellContents>
</Cell>
</Cells>
</Table>
</ab>