2016-06-13 147 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