Как удалить все выбранные узлы из XPath?

Я запускаю XPath на Java со следующим xml и кодом:

<?xml version="1.0" encoding="UTF-8"?>
<list>
    <member name="James">
        <friendlist>
            <friend>0001</friend>
            <friend>0002</friend>
            <friend>0003</friend>
        </friendlist>
    </member>
    <member name="Jamie">
        <friendlist>
            <friend>0003</friend>
            <friend>0002</friend>
            <friend>0001</friend>
        </friendlist>
    </member>
    <member name="Katie">
        <friendlist>
            <friend>0001</friend>
            <friend>0003</friend>
            <friend>0004</friend>
        </friendlist>
    </member>
</list>

Код:

try {
    XPath xpath = XPathFactory.newInstance().newXPath();
    XPathExpression pathExpr = xpath.compile("/list/member/friendlist/friend[.='0003']");
} catch (XPathExpressionException e) {

Конечно, есть и другие коды после этого, но я не вставлял его сюда, потому что он думал, что это может запутать еще больше.

Но идея в том, что я хочу выбрать все узлы друзей с идентификатором 0003 из всех узлов списка друзей участников, а затем удалить это из файла XML. XPath работает, выбирая все «дружественные» узлы со значением = 0003. Я знаю, что могу использовать метод removeChild () объекта XML Document. Но проблема в том, как мне удалить все это напрямую, не проходя через слои циклов, начиная с его родителя? Метод removeChild () требует, чтобы я знал родителя его родителя.

Спасибо!

Обновление: Вот как я использовал свой XPath:

XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression pathExpr = null;
try {
    pathExpr = xpath.compile("/list/member/friendlist/friend[.='0003']");
} catch (XPathExpressionException e) {
    e.printStackTrace();
}
NodeList list = null;
try {
    list = (NodeList) pathExpr.evaluate(xmlDoc, XPathConstants.NODESET);
} catch (XPathExpressionException e) {
    e.printStackTrace();
}

xmlDoc - это объект XML-документа, который имеет проанализированный XML-файл. XML работает нормально. Только XML не возвращает ссылку, а полностью новый список узлов, что не позволяет мне вернуться к исходному XML-документу для внесения поправок.

7
задан Carven 1 June 2011 в 17:32
поделиться