どうやって取得したものにsetNodeValue()しているのかわかりませんが、手元でためしたところ<TEST/>
だろうが<TEST></TEST>
だろうが、setNodeValue()でテキストを追加することは、できませんでしたけど。
上記でsetNodeValue("aaa")を使うと<TEST>aaa</TEST>になると思うのですが。
そっか。思っているだけでしたか。
import org.w3c.dom.Document;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.ByteArrayOutputStream;
import java.io.StringReader;
public class xxOogiri {
public static void main(final String[] args) throws Exception {
final String input = "<TEST/>";
final StreamSource streamSource = new StreamSource(new StringReader(input));
final DOMResult domResult = new DOMResult();
TransformerFactory.newInstance().newTransformer().transform(streamSource, domResult);
final Document doc = (Document) domResult.getNode();
doc.getFirstChild().appendChild(doc.createTextNode("ほんまでっか"));
final DOMSource domSource = new DOMSource(doc);
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final StreamResult streamResult = new StreamResult(baos);
TransformerFactory.newInstance().newTransformer().transform(domSource, streamResult);
System.out.println(baos);
}
}
text
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<TEST>ほんまでっか</TEST>