detach()不是删除元素dom4j

时间:2016-12-18 10:53:07

标签: java xml 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();
    }
}

1 个答案:

答案 0 :(得分:0)

您的XPath表达式错误,应该是

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

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