XPathから選択したすべてのノードを削除するにはどうすればよいですか?

カルヴェン:

次のxmlとコードを使用して、JavaでXPathを実行します。

<?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) {

もちろん、この後にコードは増えますが、混乱を招く可能性があるため、ここには貼りませんでした。

しかし、考えは、IDが0003であるすべてのフレンドノードをすべてのメンバーのフレンドリストノードから選択し、それをXMLファイルから削除することです。XPathは、値が0003であるすべての「友達」ノードを選択することによって機能します。XML DocumentオブジェクトのremoveChild()メソッドを使用できることはわかっています。しかし問題は、親から始まるループのレイヤーを経由せずに、すべてを直接削除する方法ですか?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ドキュメントを参照して修正することはできません。

jtahlborn:

返されたNodeListの各ノード:

n.getParentNode().removeChild(n);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

選択したノードのすべてのIDをjsTreeのルートノードに取得するにはどうすればよいですか?

分類Dev

XPathを使用して単一ノードを除くすべてのテキストを選択するにはどうすればよいですか?

分類Dev

XPathを使用してHTMLまたはXMLで名前のないノードを選択するにはどうすればよいですか?

分類Dev

xpathを使用してノードの範囲を最後から選択するにはどうすればよいですか?

分類Dev

rvestを使用して属性を持たないすべてのノードを選択するにはどうすればよいですか?

分類Dev

xpath式を使用して親ノードの兄弟内にあるノードを選択するにはどうすればよいですか?

分類Dev

javascriptで選択した範囲内のすべてのノードを反復処理するにはどうすればよいですか?

分類Dev

選択したレコードをTDBAdvGridから削除するにはどうすればよいですか?

分類Dev

XPATHでのみ同じノードの位置を選択するにはどうすればよいですか?

分類Dev

コンボボックスで選択したレコードからすべての値を取得するにはどうすればよいですか?

分類Dev

剣道UIグリッドで作成したフィルターからすべての行を選択するにはどうすればよいですか?

分類Dev

xpathを使用してノードの特定の数の子孫を選択するにはどうすればよいですか?

分類Dev

選択したブランチを除くすべてのノードを折りたたむにはどうすればよいですか?

分類Dev

PythonでXPathを使用して兄弟の子ノードを選択するにはどうすればよいですか?

分類Dev

選択した列をテーブルから削除するにはどうすればよいですか?

分類Dev

XPathで親ノードを選択するにはどうすればよいですか?

分類Dev

selectSingleNodeでノードを選択した後、ノードの子ノードを反復処理するにはどうすればよいですか?

分類Dev

d3 jsでルートから選択したノードへのパスを強調表示するにはどうすればよいですか?

分類Dev

ノードredisのすべてを削除するにはどうすればよいですか?

分類Dev

ノードredisのすべてを削除するにはどうすればよいですか?

分類Dev

ノードredisのすべてを削除するにはどうすればよいですか?

分類Dev

Excel VBA:特定のXPathの下にあるすべてのノードを削除/挿入するにはどうすればよいですか?

分類Dev

選択した行datagridviewからレコードを削除し、削除後にデータベースを更新するにはどうすればよいですか?

分類Dev

mongo findですべての(選択された)レコードを選択するにはどうすればよいですか?

分類Dev

すべてのノードを選択せずにTreeViewコントロールを無効にするにはどうすればよいですか?

分類Dev

すべてのDataGridの選択を削除するにはどうすればよいですか?

分類Dev

VisNetworkでノードを選択したときにノードのラベルを表示するにはどうすればよいですか?

分類Dev

dbからレコードを取得して選択するにはどうすればよいですか?

分類Dev

特定の日からすべての曜日を選択するにはどうすればよいですか?

Related 関連記事

  1. 1

    選択したノードのすべてのIDをjsTreeのルートノードに取得するにはどうすればよいですか?

  2. 2

    XPathを使用して単一ノードを除くすべてのテキストを選択するにはどうすればよいですか?

  3. 3

    XPathを使用してHTMLまたはXMLで名前のないノードを選択するにはどうすればよいですか?

  4. 4

    xpathを使用してノードの範囲を最後から選択するにはどうすればよいですか?

  5. 5

    rvestを使用して属性を持たないすべてのノードを選択するにはどうすればよいですか?

  6. 6

    xpath式を使用して親ノードの兄弟内にあるノードを選択するにはどうすればよいですか?

  7. 7

    javascriptで選択した範囲内のすべてのノードを反復処理するにはどうすればよいですか?

  8. 8

    選択したレコードをTDBAdvGridから削除するにはどうすればよいですか?

  9. 9

    XPATHでのみ同じノードの位置を選択するにはどうすればよいですか?

  10. 10

    コンボボックスで選択したレコードからすべての値を取得するにはどうすればよいですか?

  11. 11

    剣道UIグリッドで作成したフィルターからすべての行を選択するにはどうすればよいですか?

  12. 12

    xpathを使用してノードの特定の数の子孫を選択するにはどうすればよいですか?

  13. 13

    選択したブランチを除くすべてのノードを折りたたむにはどうすればよいですか?

  14. 14

    PythonでXPathを使用して兄弟の子ノードを選択するにはどうすればよいですか?

  15. 15

    選択した列をテーブルから削除するにはどうすればよいですか?

  16. 16

    XPathで親ノードを選択するにはどうすればよいですか?

  17. 17

    selectSingleNodeでノードを選択した後、ノードの子ノードを反復処理するにはどうすればよいですか?

  18. 18

    d3 jsでルートから選択したノードへのパスを強調表示するにはどうすればよいですか?

  19. 19

    ノードredisのすべてを削除するにはどうすればよいですか?

  20. 20

    ノードredisのすべてを削除するにはどうすればよいですか?

  21. 21

    ノードredisのすべてを削除するにはどうすればよいですか?

  22. 22

    Excel VBA:特定のXPathの下にあるすべてのノードを削除/挿入するにはどうすればよいですか?

  23. 23

    選択した行datagridviewからレコードを削除し、削除後にデータベースを更新するにはどうすればよいですか?

  24. 24

    mongo findですべての(選択された)レコードを選択するにはどうすればよいですか?

  25. 25

    すべてのノードを選択せずにTreeViewコントロールを無効にするにはどうすればよいですか?

  26. 26

    すべてのDataGridの選択を削除するにはどうすればよいですか?

  27. 27

    VisNetworkでノードを選択したときにノードのラベルを表示するにはどうすればよいですか?

  28. 28

    dbからレコードを取得して選択するにはどうすればよいですか?

  29. 29

    特定の日からすべての曜日を選択するにはどうすればよいですか?

ホットタグ

アーカイブ