我看了很多的资源,做了很多的研究,并尝试了许多“最佳猜测”在使用WebMatrix中使用C#,网络寻呼的时间访问一个单一的元素,但没有我想被打通。
考虑一个简单的XML文档,看起来像这样:
<root>
<requisitionData>
<element1>I am element 1</element1>
<element2>I am element 2</element2>
</requisitionData>
</root>
我知道我可以使用foreach循环,就像这样:
@using System.Xml.Linq
XDocument doc = XDocument.Load(Server.MapPath("~/User_Saves/cradebaugh/testFile.xml"));
foreach (XElement element in doc.Descendants("requisitionData"))
{
@element.Value
}
而这,当然,做工精细。 但如果我只是想存储的单一元素, <element1>
的一个字符串变量的值?
我在这里看着(下面的链接),但我不能让这个代码的正面或反面(它几乎没有,甚至看起来像C#给我,但话又说回来,我很新的XML解析...):
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/b14ce4d1-77f1-420d-ad91-0989794a1d45/
我还检查了这里: 如何从获取的XDocument XML节点
但是所示的代码是没有意义的,我在这里无论是。 我一直在想必须有要做到这一点,希望无需学习全新的查询方法更简单的方法。
---------------------------------的事情,我已经试过------------ ---------------------
XDocument doc = XDocument.Load(Server.MapPath("~/User_Saves/cradebaugh/testFile.xml"));
string element = doc.Descendants("requisitionData").Descendants("element1").Value;
错误我收到:“使用指令或程序集引用丢失
XDocument doc = XDocument.Load(Server.MapPath("~/User_Saves/cradebaugh/testFile.xml"));
XElement element = doc.Descendants("element1");
string val = element.Value;
错误我收到:无法隐式转换类型“System.Collections.Generic.IEnumerable”到“System.Xml.Linq.XElement”。 一个显式转换存在(是否缺少强制转换?)
我有,事实上,尝试过其他的东西,但我得到几乎相同的错误,如上图所示。 我是不是使这个难度比它的,还是我过于简单化呢?
-------------------------更新------------------------ ------
我能得到这个工作:
string element = doc.Element("root").Element("requisitionData").Element("element1").Value;
@element
然而,有一件事我关注这个方法的缺点是.Element
选择“第一”的比赛,所以一个XML文档,看起来像这样的:
<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>
我怎么能访问的第二次出现<element1>