[英]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.