在xml java中编辑属性

时间:2016-06-13 11:55:25

标签: java xml dom xml-parsing

我想知道如何编辑另一个节点内部的节点内的属性。这将是我的xml的一个例子:

<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解析器。

1 个答案:

答案 0 :(得分: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");