使用java生成具有特定DTD声明的XML

时间:2014-06-02 15:13:51

标签: java xml dom

我需要生成一个包含特定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?任何带有示例或示例代码的建议都将非常受欢迎。

由于

1 个答案:

答案 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>

上面代码中使用的大量方法可能会抛出大量异常,因此请确保您的异常处理达到最佳状态。我希望这会有所帮助。