How can I access a single XML element's value using C#.net web-pages with WebMatrix?

XiangLi

New Member
I've looked at a lot of resources, done a lot of research, and tried many "best-guesses" to access a single element at a time using WebMatrix with C#, web-pages, however nothing I am trying is getting through.Consider a simple xml document that looks like this:\[code\]<root> <requisitionData> <element1>I am element 1</element1> <element2>I am element 2</element2> </requisitionData></root>\[/code\]I know I can use a foreach loop, like so:\[code\]@using System.Xml.LinqXDocument doc = XDocument.Load(Server.MapPath("~/User_Saves/cradebaugh/testFile.xml"));foreach (XElement element in doc.Descendants("requisitionData")){ @element.Value}\[/code\]And that, of course, works fine. But what if I simply wanted to store the single element, \[code\]<element1>\[/code\]'s value in a string variable?I've looked here (link below), but I can't make heads or tails of this code (it barely even looks like C# to me, but then again, I'm so new to parsing XML...):http://social.msdn.microsoft.com/Fo.../thread/b14ce4d1-77f1-420d-ad91-0989794a1d45/I've also checked here: How to Get XML Node from XDocumentBut the code shown makes no sense to me here either. I keep thinking there must be a simpler way to do this, hopefully without learning a whole new querying approach.---------------------------------THINGS I'VE TRIED---------------------------------\[code\]XDocument doc = XDocument.Load(Server.MapPath("~/User_Saves/cradebaugh/testFile.xml"));string element = doc.Descendants("requisitionData").Descendants("element1").Value;\[/code\]Error I receive: "missing using directive or assembly reference\[code\]XDocument doc = XDocument.Load(Server.MapPath("~/User_Saves/cradebaugh/testFile.xml"));XElement element = doc.Descendants("element1");string val = element.Value;\[/code\]Error I receive: Cannot implicitly convert type 'System.Collections.Generic.IEnumerable' to 'System.Xml.Linq.XElement'. An explicit conversion exists (are you missing a cast?)I have, indeed, tried other things, but I get pretty much the same errors as shown above. Am I making this harder than it is, or am I oversimplifying it?-------------------------UPDATE------------------------------I was able to get this to work:\[code\]string element = doc.Element("root").Element("requisitionData").Element("element1").Value;@element\[/code\]However, one thing that concerns me about this approach is that \[code\].Element\[/code\] selects the 'first' match, so in an xml document that looks like this:\[code\]<root> <requisitionData> <element1>I am element 1</element1> <element2>I am element 2</element2> </requisitionData> <requisitionData> <element1>I am element 1</element1> <element2>I am element 2</element2> </requisitionData></root>\[/code\]How could I access the second occurrence of \[code\]<element1>\[/code\]?
 
Top