detach() 没有删除元素 dom4j

detach() isn't removing element dom4j

我正在尝试使用 "ref" 属性从树中删除一个元素

<stock>
        <produits>
        <produit ref="1" designation="PC" qte="12" pu="123"/>
        <produit ref="2" designation="Imprimante" qte="23" pu="4578"/>
        <produit ref="3" designation="Souris" qte="243" pu="15"/>
        <produit ref="4" designation="Clavier" qte="50" pu="60"/>
        <produit ref="5" designation="Scanner" qte="34" pu="500"/>
        <produit ref="6" designation="Bureau" qte="34" pu="1500"/>
        <produit ref="7" designation="Projecteur" qte="10" pu="10000"/>
    </produits>

</stock>

这是我的函数,但它不起作用。

public void supProduit(int ref) throws DocumentException
{
    Element root  =document.getRootElement();
    List<Node> nodesP = document.selectNodes("//Produits/Produit[@ref='"+ref+"']" );
    for (Node node : nodesP) {
       node.detach();
    }
}

你的XPath表达式有误,应该是

"//produits/produit[@ref='" + ref + "']"

元素名称区分大小写,为什么列表是空的。