据我所知,java 可以解析 xml 文件并获取数据,但我也想知道如何创建 xml 节点并使用 java 插入值。
文件:myXML.xml
<parent>
<start>
<id> 123 </id>
<name> s1 </name>
<value> hello </value>
</start>
</parent>
我希望,每次需要插入数据时都创建这些节点 <id> <name> and <value>
。假设我想保存id = "456", name = "s2", value = "world"
文件:myXML.xml
<parent>
<start>
<id> 123 </id>
<name> s1 </name>
<value> hello </value>
</start>
<start>
<id> 456 </id>
<name> s2 </name>
<value> world </value>
</start>
</parent>
请让我知道使用 java
以及我是否需要使用 dtd
?
最佳答案
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.DOMSource;
public class Sample {
public static void main (String[] args) {
try {
//Read and Parse
DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbfactory.newDocumentBuilder();
Document doc = builder.parse(new File("MyXml.xml"));
Element root = doc.getDocumentElement();
//Add Element
Element element_start = doc.createElement("start");
Element element_id = doc.createElement("id");
Text textContents = doc.createTextNode(" 456 ");
element_id.appendChild(textContents);
element_start.appendChild(element_id);
Element element_name = doc.createElement("name");
textContents = doc.createTextNode(" s2 ");
element_name.appendChild(textContents);
element_start.appendChild(element_name);
Element element_value = doc.createElement("value");
textContents = doc.createTextNode(" world ");
element_value.appendChild(textContents);
element_start.appendChild(element_value);
root.appendChild(element_start);
//Write
DOMSource source = new DOMSource(doc);
StreamResult out = new StreamResult(new File("MyXmlOut.xml"));
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
tf.transform(source, out);
} catch (Exception e) {
e.printStackTrace();
}
}
}
关于java - 如何用 Java 构建 XML 信息集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7803344/