如何在java中更改xml中元素的值?
How to change the value of an element in xml in java?
我有以下代码解析 xml 并获取元素的值:
NodeList elem = dom.getElementsByTagName("quantity");
LOG.info("elem.getLength: " + elem.getLength());
int quantity = -1;
for (int i = 0; i < elem.getLength(); i++) {
Element linenl_quantity = (Element) elem.item(i);
LOG.info(linenl_quantity.getAttributes().getNamedItem("value").getNodeValue());
quantity = toInteger(linenl_quantity.getAttributes().getNamedItem("value").getNodeValue());
linenl_quantity.setAttribute("value", String.valueOf(quantity));
}
当我调用行 linenl_quantity.setAttribute("value", String.valueOf(quantity))
时,出现以下错误:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: getWriter() has already been called for this response
我需要将元素 <quantity value="1.0" />
的浮点值更改为 <quantity value="1" />
。我设法获取了值,但我该如何更改它?
我找到了解决方案。
我如下编辑代码并将其移动到另一个 class(文件)。
NodeList elem = dom.getElementsByTagName("quantity");
int quantity = -1;
for (int j = 0; j < elem.getLength(); j++) {
Element linenl_quantity = (Element) elem.item(j);
quantity = (int)Double.parseDouble(linenl_quantity.getAttributes().getNamedItem("value").getNodeValue());
LOG.info(String.valueOf(quantity));
}
我有以下代码解析 xml 并获取元素的值:
NodeList elem = dom.getElementsByTagName("quantity");
LOG.info("elem.getLength: " + elem.getLength());
int quantity = -1;
for (int i = 0; i < elem.getLength(); i++) {
Element linenl_quantity = (Element) elem.item(i);
LOG.info(linenl_quantity.getAttributes().getNamedItem("value").getNodeValue());
quantity = toInteger(linenl_quantity.getAttributes().getNamedItem("value").getNodeValue());
linenl_quantity.setAttribute("value", String.valueOf(quantity));
}
当我调用行 linenl_quantity.setAttribute("value", String.valueOf(quantity))
时,出现以下错误:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: getWriter() has already been called for this response
我需要将元素 <quantity value="1.0" />
的浮点值更改为 <quantity value="1" />
。我设法获取了值,但我该如何更改它?
我找到了解决方案。
我如下编辑代码并将其移动到另一个 class(文件)。
NodeList elem = dom.getElementsByTagName("quantity");
int quantity = -1;
for (int j = 0; j < elem.getLength(); j++) {
Element linenl_quantity = (Element) elem.item(j);
quantity = (int)Double.parseDouble(linenl_quantity.getAttributes().getNamedItem("value").getNodeValue());
LOG.info(String.valueOf(quantity));
}