2017-10-24 28 views
0

XElementとXAttributeを使用して大きなXML文書を作成しました。私は要素に属性を追加し、要素に要素を追加することでそれを行いました。このようXElementにXML宣言を追加する

// root node: PhysicalProperty 
XElement PhysicalProperty = new XElement("PhysicalProperty"); 

// PhysicalProperty child element: Management 
XElement Management = new XElement("Management"); 
XAttribute ManagementOrganizationName = new XAttribute("OrganizationName", property.Company.Name); 
XAttribute ManagementManagementID = new XAttribute("ManagementID", property.Company.CompanyID); 
Management.Add(ManagementOrganizationName); 
Management.Add(ManagementManagementID); 
PhysicalProperty.Add(Management); 

私のXML要素をたくさん持っています。しかし、xml宣言が作成されていないことに気付きました。

<?xml version="1.0" encoding="UTF-8"?> 

私はXDocumentを作成する必要があります。 XDocumentを作成し、ルート要素(PhysicalProperty)をXDocumentに追加するにはどうすればよいですか?出来ますか?

+1

多くの変数を作り、 'Add()'を呼び出すのではなく、 'XAlement(...)'(など)を 'XElement'コンストラクタに直接渡すべきです。 – SLaks

+0

はい、それには+30要素が含まれています。ドキュメント/宣言を作成してルート要素に設定できるかどうかは不思議だった – user6824563

+0

いいえ、要素がドキュメントではないためです。要素の宣言を持つことは意味がありません。文書の場合にのみです。 –

答えて

1

new XDeclaration(...)XDocumentコンストラクタに渡し、その後にルート要素を渡す必要があります。

+0

はい、すべてのXElementを編集する必要があります。それは私が言ったことです。 XDocument.Elementに割り当てることはできません。できますか? – user6824563

+0

ルートをコンストラクタに渡す代わりに、 'Add()'を呼び出すことができます。 – SLaks

+0

@ user6824563 - 「すべてのXElementを編集する」理由はありません。なぜそう思うの? –

関連する問題