我有一些生成XML文件的生产代码,生成方式如下:
- 使用带有XmlAttributes类实例的XmlSerializer生成字符串
- 使用在步骤1中生成的字符串,通过LoadXml()方法生成XmlDocument
- 使用StringWriter作为参数,使用XmlWriter进行文件写入
现在需要包含DOCTYPE声明。我希望对代码进行尽可能少的更改。
到目前为止,我唯一成功的方法是:
tx.WriteDocType("entitytype", null, "http://testdtd/entity.dtd", null);
foreach (XmlNode node in document)
{
if (node.NodeType == XmlNodeType.XmlDeclaration)
{
document.RemoveChild(node);
}
}
document.WriteTo(tx);
这似乎有点不正规——我能不能以更好的方式插入DOCTYPE声明?特别是,我能否避免在通过LoadXml()调用生成的XmlDocument中拥有XmlDeclaration?
DocType
的方式在我看来似乎是正确的方式。 - undefined