【问题标题】:Using xname in Linq-to-xml在 Linq-to-xml 中使用 xname
【发布时间】:2009-08-22 16:10:23
【问题描述】:

我正在编写一些代码来从我网站上的 rss 提要列表(已解析)生成 opml 文件。用户将从我网站上的 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 是 feed 对象的集合(例如 hanselman rss feed、codinghorror rss feed 等)。数据网格将有一个复选框并按下此网格下方的按钮,上面的代码将执行(我也得到了 xml 声明等的代码)。

当我使用 Element(...) 方法时,我需要提供 XName。这有一个我不能使用的内部构造函数。这个参数怎么传入?

【问题讨论】:

    标签: c# linq linq-to-xml


    【解决方案1】:

    您也可以用花括号将命名空间括起来:

    XName name = "{http://schemas.xyz.com/namespaceUri}tagName";
    

    【讨论】:

      【解决方案2】:

      XName 上有一个名为 Get 的静态方法,可让您创建 XName。但是,还有一个从字符串到 XName 的隐式转换,所以如果你只输入一个字符串,它应该能够转换为 XName 并且可以毫无问题地工作

      【讨论】:

        【解决方案3】:

        创建一个XNamespace 对象并使用加法运算符:

        XName name = (XNamespace)"http://schemas.xyz.com/namespaceUri" + "tagName";
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多