我正在尝试使用DOM Parser创建一个xml。下面是我创建XML的代码。但我得到的xml只有xml版本,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
用于生成xml的代码如下:
private void createTestngXML() throws Exception {
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.newDocument();
document.setXmlVersion("1.0");
Element root = document.createElement("suite");
root.setAttribute("name", "MasterDataSuite");
root.setAttribute("verbose", "1");
Element testnode = document.createElement("test");
testnode.setAttribute("name", "MasterDataTests");
root.appendChild(testnode);
Element classesNode = document.createElement("classes");
testnode.appendChild(classesNode);
Element classNode = document.createElement("class");
classNode.setAttribute("com.test.suite.TestSuite1.java");
classesNode.appendChild(classNode);
Element classNode = document.createElement("class");
classNode.setAttribute("com.test.suite.TestSuite2.java");
classesNode.appendChild(classNode);
document.appendChild(root);
DOMSource source = new DOMSource(document);
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
StreamResult result = new StreamResult(new File("D:\\testng.xml"));
transformer.transform(source, result);
} catch (Exception ex) {
throw ex;
}
}
但是创建的节点不是在xml文件中生成的。我做错了什么?
答案 0 :(得分:0)
您的示例提供了编译错误。
尝试以下工作样本,
public static void main(String[] args) {
try {
DocumentBuilderFactory dbFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder =
dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
// root element
Element rootElement = doc.createElement("cars");
doc.appendChild(rootElement);
// supercars element
Element supercar = doc.createElement("supercars");
rootElement.appendChild(supercar);
// setting attribute to element
Attr attr = doc.createAttribute("company");
attr.setValue("Ferrari");
supercar.setAttributeNode(attr);
// carname element
Element carname = doc.createElement("carname");
Attr attrType = doc.createAttribute("type");
attrType.setValue("formula one");
carname.setAttributeNode(attrType);
carname.appendChild(
doc.createTextNode("Ferrari 101"));
supercar.appendChild(carname);
Element carname1 = doc.createElement("carname");
Attr attrType1 = doc.createAttribute("type");
attrType1.setValue("sports");
carname1.setAttributeNode(attrType1);
carname1.appendChild(
doc.createTextNode("Ferrari 202"));
supercar.appendChild(carname1);
// write the content into xml file
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
Transformer transformer =
transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result =
new StreamResult(new File("D:\\cars.xml"));
transformer.transform(source, result);
// Output to console for testing
StreamResult consoleResult =
new StreamResult(System.out);
transformer.transform(source, consoleResult);
} catch (Exception e) {
e.printStackTrace();
}
}