Принудительное включение XDocument.ToString () для включения закрывающего тега при отсутствии данных. - PullRequest
11 голосов
/ 17 марта 2010

У меня есть XDocument, который выглядит так:

 XDocument outputDocument = new XDocument(
                new XElement("Document",
                    new XElement("Stuff")
                )
            );

Это когда я звоню

outputDocument.ToString()

Выходы к этому:

<Document>
    <Stuff />
</Document>

Но я хочу, чтобы это выглядело так:

<Document>
    <Stuff>
    </Stuff>
</Document>

Я понимаю, что первое правильно, но я должен вывести его таким образом. Есть предложения?

1 Ответ

13 голосов
/ 17 марта 2010

Установите свойство Value каждого пустого XElement специально для пустой строки.

    // Note: This will mutate the specified document.
    private static void ForceTags(XDocument document)
    {
        foreach (XElement childElement in
            from x in document.DescendantNodes().OfType<XElement>()
            where x.IsEmpty
            select x)
        {
            childElement.Value = string.Empty;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...