あなたはXDocumentType
を追加することができます既存のXDocument
ですが、追加する最初の要素である必要があります。これを取り巻くドキュメントはあいまいです。
コメントの中でAddFirst
を使用する便利な方法を指摘してくれたJeroenに感謝します。既存XDocument
にXDocumentType
を追加するAdd
メソッドを使用することができ、
var doc = XDocument.Parse("<a>test</a>");
var doctype = new XDocumentType("a", "-//TEST//", "test.dtd", "");
doc.AddFirst(doctype);
代わりに、しかし、このアプローチは、すでに要素を持っているXDocument
後XDocumentType
を追加する方法を示し、次のコードを、書くことができます最初のものでなければならないので、他の要素が存在してはならないということです。一方
、以下は無効であり、InvalidOperationExceptionがもたらすであろう:「この操作は間違って構造化文書を作成します。」
xDocument.Add(new XElement("Books"));
xDocument.Add(documentType); // invalid, element added before doctype
これはXDocumentにも当てはまりますか? MSDNリンクはXmlDocumentを指します。 – dtb
@dtb:それはありますが、MSDNのXDocumentには記載されていません。また、更新されたコードとInvalidOperationExceptionも参照してください。 –
後でXDocumentTypeを追加することはできますが、XDocumentTypeが 'XDocument'の最初の要素であることを確認する必要があります。 'xDocument.Add(documentType)'の代わりに 'xDocument.AddFirst(documentType)'を使うことでそれを行うことができます。 –