使用Java更改xml标记的值

时间:2019-05-20 13:41:36

标签: java xml

我有以下xml格式:

<component>
   <observation classCode="OBS" moodCode="EVN">
      <value unit="mm[Hg]" value="120.0" xsi:type="PQ"/>
  </observation>
</component>

我想将值"120.0"更改为"120"。因此,请使用java代码删除小数部分。

当前,我的代码如下,但是它不完整。

    NodeList nodePhysical = dom.getElementsByTagName("observation");

    for (int i = 0; i < nodePhysical.getLength(); i++) {
        Node node = nodePhysical.item(i);

        NodeList childNodes = node.getChildNodes();

    }

2 个答案:

答案 0 :(得分:2)

尝试一下

    NodeList nodePhysical = dom.getElementsByTagName("observation");
    for (int i = 0; i < nodePhysical.getLength(); i++) {
    Node node = nodePhysical.item(i);
    NodeList childNodes = node.getChildNodes();
    Element ele;
    for (int count = 0; count < childNodes.getLength(); count++) {
    ele= (Element) childNodes.item(count);
    ele.setAttribute("value",ele.getAttribute("value").split("\\.")[0]);
    }
    }

答案 1 :(得分:0)

谢谢@Srinivasan Sekar的帮助!

我修复了。

我的新代码是:

    NodeList nodePhysical = dom.getElementsByTagName("observation");

    for (int i = 0; i < nodePhysical.getLength(); i++) {
        Node node = nodePhysical.item(i);
        NodeList nodeC = node.getChildNodes();
        for (int j = 0; j < nodeC.getLength(); j++) {
            if(nodeC.item(j).getNodeType() == Node.ELEMENT_NODE){
                Element element = (Element) nodeC.item(j);
                element.setAttribute("value", (element.getAttribute("value").split("\\.")[0]));
            }
        }
    }