【问题标题】:Find or Create Element in LINQ-to-XML在 LINQ-to-XML 中查找或创建元素
【发布时间】:2009-03-12 01:26:47
【问题描述】:

我想设置一个可能已经存在也可能不存在的元素的值/子元素。如果该元素不存在,我想为我自动创建它。

这样,我的代码只需要关心元素的内容......而不是它是否已经存在。 (等我用完,它肯定存在)。

此功能是否已存在于 LINQ-to-XML 中?我还没有找到它,正在考虑编写我自己的方法。

【问题讨论】:

    标签: .net xml linq linq-to-xml


    【解决方案1】:

    这是我目前所拥有的:

    public static IEnumerable<XElement> ElementsOrCreate(this XElement parent, XName name)
    {
        IEnumerable<XElement> elements = parent.Elements(name);
        if (!elements.Any())
        {
          XElement element = new XElement(name);
          parent.Add(element);
          elements = new XElement[] { element };
        }
        return elements;
    }
    

    请注意,第一个参数(用于扩展)是 XElement,而不是像 System.Xml.Linq.Extensions.Elements 这样的 XContainer。唯一的其他非 XElement XContainer 是 XDocument,这种方法对于 XDocument 不起作用(并且没有多大意义)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多