我需要生成一个包含特定XML声明和DTD声明的XML文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//CompanyName//DTD CompanyName PaymentService v2//EN"
"http://dtd.CompanyName.com/paymentService_v2.dtd">
要生成的剩余XML还具有特定的元素和关联值。
我想知道在我的java类中生成这个XML的最佳方法是什么?使用String Buffer还是DOM?任何带有示例或示例代码的建议都将非常受欢迎。
由于
答案 0 :(得分:1)
我建议使用Java DOM
API。在String
对象中处理XML或XHTML是非常耗时和错误的,所以只要有选项,就尝试使用像DOM
这样的propper解析器。
以下代码应使用Java DOM
添加doc类型和xml声明。 <?xml...
创建文档时,DocumentBuilder
应自动添加到顶部。
// Create document
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
//Create doc type
DOMImplementation domImpl = doc.getImplementation();
DocumentType doctype = domImpl.createDocumentType("paymentService", "-//CompanyName//DTD CompanyName PaymentService v2//EN", "http://dtd.CompanyName.com/paymentService_v2.dtd");
doc.appendChild(doctype);
// Add root element
Element rootElement = doc.createElement("root");
doc.appendChild(rootElement);
上面创建的XML应该是这样的;
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE paymentService PUBLIC "-//CompanyName//DTD CompanyName PaymentService v2//EN" "http://dtd.CompanyName.com/paymentService_v2.dtd">
<root>
</root>
上面代码中使用的大量方法可能会抛出大量异常,因此请确保您的异常处理达到最佳状态。我希望这会有所帮助。