Использование xname в Linq-to-xml - PullRequest
8 голосов
/ 22 августа 2009

Я пишу некоторый код для генерации файла opml из списка RSS-каналов (проанализированных) на моем сайте. Пользователь выберет чекбоксы из сетки данных RSS-каналов на моем сайте, и при нажатии кнопки произойдет тяжелый подъем.

В любом случае, у меня есть такой код:

     foreach (var v in list)
    {
        XName xname;

        doc.Element("channel").Add(
            new XElement("title", v.Name),
            new XElement("description", "First Article Description"),
            new XElement("pubDate", DateTime.Now.ToUniversalTime()),
            new XElement("guid", Guid.NewGuid()));

    }

list - это набор объектов каналов (например, Hanselman RSS-канал, Codinghorror RSS-канал и т. Д.). Сетка данных будет иметь флажок, и при нажатии кнопки под этой сеткой будет выполнен приведенный выше код (я также получил код для объявлений xml и т. Д.).

Когда я использую метод Element (...), мне нужно предоставить XName. У этого есть внутренний конструктор, который я не могу использовать. Как я могу передать этот параметр в?

Ответы [ 3 ]

16 голосов
/ 23 августа 2009

Вы также можете заключить пространство имен в фигурные скобки:

XName name = "{http://schemas.xyz.com/namespaceUri}tagName";
11 голосов
/ 22 августа 2009

В XName есть статический метод Get, который позволяет вам создать XName. Однако существует также неявное приведение из строки в XName, поэтому, если вы просто введете строку, она сможет преобразовать в XName и работать без проблем

2 голосов
/ 22 августа 2009

Создайте объект XNamespace и используйте оператор сложения:

XName name = (XNamespace)"http://schemas.xyz.com/namespaceUri" + "tagName";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...