簡體   English   中英

XDocument.Load失去宣言

[英]XDocument.Load losing Declaration

我有一個像這樣的XML模板文件

<?xml version="1.0" encoding="us-ascii"?>
<AutomatedDispenseResponse>
    <header shipmentNumber=""></header>
    <items></items>
</AutomatedDispenseResponse>

當我使用XDocument.Load時,出於某種原因

<?xml version="1.0" encoding="us-ascii"?>

被丟棄了。

如何將文件加載到XDocument中而不丟失頂部的聲明?

我懷疑它並沒有真正放棄加載聲明 - 當你寫出你忘記它的文件時。 這是一個適合我的示例應用程序:

using System;
using System.Xml.Linq;

class Test
{
    static void Main()
    {
        XDocument doc = XDocument.Load("test.xml");
        Console.WriteLine(doc.Declaration);
    }
}

和test.xml:

<?xml version="1.0" encoding="us-ascii" ?>
<Foo>
  <Bar />
</Foo>

輸出:

<?xml version="1.0" encoding="us-ascii"?>

聲明不是XDocument.ToString() ,並且在使用XDocument.Save時可能會被替換,因為您可能正在使用類似TextWriter東西,它已經知道它正在使用哪種編碼。 如果你保存到流或只是文件名,它保存在我的經驗中。

它已加載。 你可以看到它並使用以下方法訪問它的一部分:

XDocument.Parse(myDocument).Declaration

暫無
暫無

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

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