0

「アドレス」という名前のノードの下に特定の情報が含まれている限り、タグ名「場所」のみを変更するメソッドに追加できる行コードは何ですか? したがって、「色」または「サイズ」を更新すると、nodeList に次のように伝えることができます:「これらの値は、「住所」に 123 メイン ストリートが含まれている場合にのみ変更してください。すべてのタイプの「等号」を試しました。注: 私が作成しました。チェックする変数として object.getAddress を使用するオブジェクト XML には 50 のエントリがあります。

<location>
    <address>123 Main Street</address>
    <color>red</color>
    <size>large</size>
</location>


public void changeValue(Document doc, String oldValue, String NewValue) throws         Exception {
    Element root = doc.getDocumentElement();
    NodeList childNodes = root.getElementsByTagName("location");
    for (int i = 0; i < childNodes.getLength(); i++) {
        NodeList subChildNodes = childNodes.item(i).getChildNodes();
        for (int j = 0; j < subChildNodes.getLength(); j++) {
            try {
                if (subChildNodes.item(j).getTextContent().equals(oldValue)) {
                    subChildNodes.item(j).setTextContent(NewValue);
                }
            } catch (Exception e) {
            }
        }
    }
    File file = new File("XMLDatabase.xml");
    save(file, doc);
}
4

1 に答える 1

0

これがお役に立てば幸いです。

for (int i = 0; i < childNodes.getLength(); i++) {
        NodeList subChildNodes = childNodes.item(i).getChildNodes();
        for (int j = 0; j < subChildNodes.getLength(); j++) {
            try {
                if (subChildNodes.item(j).getTextContent().equals("123 Main Street")) {
                    int temp=j;
                    subChildNodes.item(temp).setTextContent("value you want to set");
                    subChildNodes.item(temp+2).setTextContent("value you want to set");
                    subChildNodes.item(temp+4).setTextContent("value you want to set");
                }
            } catch (Exception e) {
            }
        }
}
于 2013-02-03T22:45:58.867 に答える