(此响应只是对@Grzegorz Szpetkowski的答案(为什么起作用)的补充)
您丢失了doctype定义,因为您使用了
Transform产生XSL转换的类。
DOCTYPEXSLT树模型中没有声明或docytype定义对象/节点。当解析器将文档移交给XSLT处理器时,文档类型信息将丢失,因此无法保留或复制。XSLT提供了对输出树的序列化的一些控制,包括添加`<!DOCTYPE
…
带有公共或系统标识符的声明。这些标识符的值需要事先知道,并且不能从输入树中读取。也不支持创建或保留嵌入式DTD或实体声明(尽管对此障碍的一种解决方法是将其输出为带有的文本disable-
output-escaping=”yes”`)。
为了保留DTD,您需要使用XML序列化器而不是XSL转换来输出文档,就像已经建议的Grzegorz。



