【问题标题】:Adding DTD info to xml using DOM使用 DOM 将 DTD 信息添加到 xml
【发布时间】:2011-09-24 05:37:11
【问题描述】:

我正在使用 DOM 创建一个 XML 文件并使用 StAX 解析另一个 xml 以选择性地获取要写入的数据。

我陷入了从 Stax 获得 DTD 事件的问题,但我不知道如何将其写入 DOM 文档。

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();

while (r.hasNext()) {
            int eventType = r.next();

            Node child;

            switch (eventType) {
            case XMLStreamConstants.CDATA:
                child = doc.createCDATASection(r.getText());
                break;
            case XMLStreamConstants.DTD:
            //??? - what shoould come here?
            break;

r 是 XMLEventReader 对象

【问题讨论】:

  • 如果要将 XML 转换为 XML,使用 XSLT 可能更容易
  • 它是一个很大的 xml 文件,我必须使用 StAX 来解析它。

标签: java dom stax


【解决方案1】:

终于找到答案了。

转换文件时添加Doctype。

 Transformer tFormer = 
  TransformerFactory.newInstance().newTransformer();
//  Set system id
  tFormer.setOutputProperty(
  OutputKeys.DOCTYPE_SYSTEM, "systmId");

  Source source = new DOMSource(doc);
  Result result = new StreamResult(System.out);
  tFormer.transform(source, result);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 2011-12-11
    • 2018-11-28
    • 2010-12-26
    • 1970-01-01
    • 2012-06-27
    相关资源
    最近更新 更多