C# 如果现有XElement没有';不存在
在尝试添加元素之前,如何检查元素是否存在于给定元素中C# 如果现有XElement没有';不存在,c#,.net,xml,linq-to-xml,C#,.net,Xml,Linq To Xml,在尝试添加元素之前,如何检查元素是否存在于给定元素中 Background:我有一个XDocumentX,它作为子元素Flowers包含一系列元素,每个元素都被命名为Flower。每个Flower已经有2个子元素,我想添加第三个元素Price。但是,我想检查并确保Flower元素中没有Price元素。我该怎么做?我甚至需要检查吗?XElement有一个HasElements属性,如果只想知道是否存在任何元素,该属性就可以工作 对于你的情况,我会用 XNamespace ns = "http://
Background:我有一个
XDocument
X
,它作为子元素Flowers
包含一系列元素,每个元素都被命名为Flower
。每个Flower
已经有2个子元素,我想添加第三个元素Price
。但是,我想检查并确保Flower
元素中没有Price
元素。我该怎么做?我甚至需要检查吗?XElement
有一个HasElements
属性,如果只想知道是否存在任何元素,该属性就可以工作
对于你的情况,我会用
XNamespace ns = "http://mynamespace.com";
bool hasPrice = flowerElement.Element(ns + "Price") == null;
…以查看价格元素是否存在。如果没有,您可以添加它
注意:如果没有为XML文件设置任何名称空间,则可以使用
名称空间。无
而不是ns
对,但每个Flower
元素都有2个子元素。我试图查看名为Price
的元素是否已经作为子元素存在。“我怎样才能做到不抛出异常?”本,我进一步编辑了我的答案。这不应该引发异常。@Ben,ns
是Price
元素的XML命名空间。它通常只是默认名称空间。我将添加一个示例,说明如何在我的答案中设置ns
。XNamespace是否会在此处重载加号运算符??