Невозможно удалить родительский узел в XML - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь удалить узлы <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>
...