2016-06-13 87 views
-1

我想知道如何編輯另一個節點內部的節點內部的屬性。這將是我的XML的例子:在xml中編輯屬性java

<name>Rule_1</name> 
<synonymn name="user" class="test.user" /> 

    <rule name="adult"> 
    <if leftTerm="user.getAge" op="&gt;" rightTerm="18" /> 
    <then method="user.mostrarMensaje" arg1="true" /> 
    </rule> 

    <rule name="underAge"> 
    <if leftTerm="user.getAge" op="&lt;" rightTerm="18" /> 
    <then method="user.showMessage" arg1="false" /> 
    </rule> 

我想每個規則的屬性rightTerm更改爲20,但我不能訪問它,我得到的NullReferenceException 。

我正在使用Java DOM解析器。

回答

0
Node rule = doc.getElementsByTagName("rule").item(0); 

    // update IF attribute 
    Node if=rule.getFirstChild(); 

    NamedNodeMap attr = if.getAttributes(); 
    Node nodeAttr = attr.getNamedItem("rightTerm"); 
    nodeAttr.setTextContent("20"); 

,或者你可以直接做

 Node If= doc.getElementsByTagName("if").item(0); 
     NamedNodeMap attr = If.getAttributes(); 
    Node nodeAttr = attr.getNamedItem("rightTerm"); 
    nodeAttr.setTextContent("20"); 
+0

這工作不錯TY! – David