簡體   English   中英

向 XElement 添加 XML 聲明

[英]Add XML declaration to XElement

我使用 XElement 和 XAttribute 創建了一個大的 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? 有可能嗎?

您需要將new XDeclaration(...)傳遞給XDocument構造函數,然后是根元素。

您必須從一個 XDocument 開始,它帶有一個默認的 utf-8 編碼的聲明成員。 如果需要,您可以用這個的新實例替換聲明。

var fi = new FileInfo(@"[MyFileName]");
var cultureName = "en-CA";
XDocument doc = XDocument.Load(fi.FullName, LoadOptions.PreserveWhitespace);
var language = doc.Descendants()
        .Where(t => t.Name.LocalName == "Language")
        .FirstOrDefault();

if (language != null && language.Value != cultureName)
{
    language.SetValue(cultureName);
    File.WriteAllText(fi.FullName
        , $"{doc.Declaration}{doc.ToString()}"
        , encoding: Encoding.UTF8);
}

您可以從文檔中搜索、瀏覽或創建項目。 一旦您需要存儲 XML 文檔的內容及其聲明,您可以在保存內容時簡單地連接聲明。 文檔的內容已經包含一個換行符來合並聲明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM