Получить HTML-теги, встроенные в XML с помощью linq - PullRequest
1 голос
/ 07 августа 2009

У меня есть базовый XML-файл, который выглядит следующим образом.

    <root>
     <item>
        <title><p>some title</p></title>
     </item>
    ...
    </root>

Что я хочу, так это получить всю строку заголовка, включая тег html xml, используя linq, и отобразить ее в повторителе. Я могу получить название без проблем, но тег <p> удаляется.

Если я использую
title = item.Element("title").ToString(), это работает как-то, но я также получаю все теги xml - то есть заголовок не отображается в html.

Я уже пытался кодировать "<" с помощью "&lt;", но из-за этого трудно читать XML.

Что было бы возможным решением, кроме использования CDATA и кодирования?

Приветствие Терри

Ответы [ 3 ]

1 голос
/ 07 августа 2009

Создайте ридер из элемента title и прочитайте InnerXml:

    static void Main(string[] args)
    {
        string xml = "<root><item><title><p>some title</p></title></item></root>";

        XDocument xdoc = XDocument.Parse(xml);
        XElement te = xdoc.Descendants("title").First();
        using (XmlReader reader = te.CreateReader())
        {
            if (reader.Read())
                title = reader.ReadInnerXml();
        }
    }
0 голосов
/ 08 августа 2009

XElement x = XElement.Parse (ваш xml);

var y = x.Descendants ("title"). Потомки ();

Затем выполните итерации y для получения списка содержимого элементов заголовка.

Кстати, LINQPad (http://www.linqpad.net) - это удобный бесплатный инструмент для тестирования LINQ-XML.

0 голосов
/ 08 августа 2009

См. Лучший способ получить InnerXml для XElement? , чтобы узнать, как получить InnerXml для XElement.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...