Add new XElement to an existing XElement if it doesn't already exist
How do I check to see if an element exists within a given element before trying to add it?
Background: I have an XDocument
X
that contains as a child element Flowers
which subsequently contains a series of elements that are each named Flower
. Each Flower
already has 2 child elements and I would like to add a 3rd element called Price
. However, I want to check and make sure there's not already an element for开发者_JAVA技巧 Price
within the Flower
element. How do I do that? Do I even need to check?
XElement
has a HasElements
property, which would work if just wanted to know whether any elements existed or not.
For your case, I would use...
XNamespace ns = "http://mynamespace.com";
bool hasPrice = flowerElement.Element(ns + "Price") == null;
..to see if a the price element exists. If not, you can then add it.
Note: if you don't have any namespace set for your XML file, you can use Namespace.None
instead of ns
.
精彩评论