如何在Java中使用StAX解析器在XML中声明DOCTYPE和ENTITY
我正在使用StAX解析器生成XML。以下是我需要生成的内容:如何在Java中使用StAX解析器在XML中声明DOCTYPE和ENTITY,java,xml,parsing,doctype,stax,Java,Xml,Parsing,Doctype,Stax,我正在使用StAX解析器生成XML。以下是我需要生成的内容: <?xml version = "1.0"?> <!DOCTYPE FILE PUBLIC "-//SOMETHING//DTD bla bla bla//EN" "scheme.dtd" [ <!ENTITY file1 SYSTEM "D:\repo\file1.pdf" NDATA application_pdf> ] > <FILES>
<?xml version = "1.0"?>
<!DOCTYPE FILE PUBLIC "-//SOMETHING//DTD bla bla bla//EN" "scheme.dtd"
[
<!ENTITY file1 SYSTEM "D:\repo\file1.pdf" NDATA application_pdf>
]
>
<FILES>
<FILE>
<METADATA></METADATA>
<CONTENT></CONTENT>
..... and so on .....
问题是我不知道如何声明DOCTYPE和ENTITY标记。试图用谷歌搜索,但没有找到任何解决方案。请帮忙。我找到了解决办法。我禁用了在工厂中转义的字符:
XMLOutputFactory factory = XMLOutputFactory.newInstance();
factory.setProperty("escapeCharacters", false);
并使用writeCharacters方法写入DOCTYPE和实体:
writer.writeCharacters("doctype bla bla");
XMLStreamWriter类中有一个用于此的方法:。只需将整个DOCTYPE blob传递到那里