在java,dom,xml解析中设置新节点值时出现问题

Gra*_*min 22 java xml dom

我有以下代码:

DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder();
StringReader reader = new StringReader(s);
InputSource inputSource = new InputSource(reader);
Document doc_ = dBuilder.parse(inputSource);
Run Code Online (Sandbox Code Playgroud)

然后我想使用以下代码在根节点下的该节点中创建一个新元素:

Node node = doc_.createElement("New_Node");
node.setNodeValue("New_Node_value");
doc_.getDocumentElement().appendChild(node);
Run Code Online (Sandbox Code Playgroud)

问题是节点被创建并附加但是没有设置该值.我不知道当我看到我的xml时,如果它以某种方式隐藏,我是否只是看不到值但我不认为是这种情况,因为我试图在创建节点调用之后获取节点值然后它回来了null.我是xml和dom的新手,我不知道新节点的值存储在何处.它是一个属性吗?

<New_Node value="New_Node_value" />
Run Code Online (Sandbox Code Playgroud)

还是它在这里增值:

<New_Node> New_Node_value </New_Node>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,

谢谢,乔希

dog*_*ane 40

以下代码:

Element node = doc_.createElement("New_Node");
node.setTextContent("This is the content");  //adds content
node.setAttribute("attrib", "attrib_value"); //adds an attribute
Run Code Online (Sandbox Code Playgroud)

生产:

<New_Node attrib="attrib_value">This is the content</New_Node>
Run Code Online (Sandbox Code Playgroud)

希望这澄清一下.

  • `setNodeValue`根据节点类型而不同(请查看javadocs中的表:http://download.oracle.com/javase/6/docs/api/org/w3c/dom/Node.html).如果节点是`Element`,那么设置nodeValue什么也不做,因为nodeValue是'null`. (9认同)