XDocument. ToString () отбрасывает XML, Кодирующий Тег

Вы, вероятно, хотели бы разделить ту большую таблицу в конечном счете. Вы, вероятно, захотите поместить его на отдельный жесткий диск перед размышлением о втором сервере. Выполнение его с MySQL является самой удобной опцией. Если это способно, то пойдите для него.

, НО

Все зависит от того, как Ваша база данных используется, действительно. Статистика.

100
задан Henrik P. Hessel 18 August 2011 в 22:16
поделиться

3 ответа

Либо явно напишите объявление, либо используйте StringWriter и вызовите Save () :

using System;
using System.IO;
using System.Text;
using System.Xml.Linq;

class Test
{
    static void Main()
    {
        string xml = @"<?xml version='1.0' encoding='utf-8'?>
<Cooperations>
  <Cooperation />
</Cooperations>";

        XDocument doc = XDocument.Parse(xml);
        StringBuilder builder = new StringBuilder();
        using (TextWriter writer = new StringWriter(builder))
        {
            doc.Save(writer);
        }
        Console.WriteLine(builder);
    }
}

Вы можете легко добавить это как расширение method:

public static string ToStringWithDeclaration(this XDocument doc)
{
    if (doc == null)
    {
        throw new ArgumentNullException("doc");
    }
    StringBuilder builder = new StringBuilder();
    using (TextWriter writer = new StringWriter(builder))
    {
        doc.Save(writer);
    }
    return builder.ToString();
}

Это имеет то преимущество, что он не сработает, если не объявление :)

Затем вы можете использовать:

string x = doc.ToStringWithDeclaration();

Обратите внимание, что будет использоваться utf-16 как кодирование, потому что это неявное кодирование в StringWriter . Вы можете повлиять на это самостоятельно, создав подкласс StringWriter , например , чтобы всегда использовать UTF-8 .

97
ответ дан 24 November 2019 в 04:53
поделиться

Свойство Объявление будет содержать объявление XML. Чтобы получить содержание плюс декларацию, вы можете сделать следующее:

tb_output.Text = xml.Declaration.ToString() + xml.ToString()
45
ответ дан 24 November 2019 в 04:53
поделиться

Вы также можете использовать XmlWriter и вызвать метод

Writer.WriteDocType() 

.

0
ответ дан 24 November 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: