如果我在C#中的XElement myXML变量中有以下XML,
<Example>
<Level1>
<Level2>myvalue</Level2>
</Level1>
</Example>
要获得“myvalue”,我需要执行以下操作:
myXML.Element("Leve1").Element("Level2").Value;
是否有任何捷径可以这样做:
myXML.Element("Leve1/Level2").Value
...谢谢
答案 0 :(得分:1)
尝试下面的代码段,
//Load xml
XDocument xdoc = XDocument.Parse("<Example><Level1><Level2>myvalue</Level2</Level1></Example>");
//Run query
var lv2s = (from lv2 in xdoc.Descendants("Level2") select lv2.Value).ToList();
答案 1 :(得分:1)
我个人建议您使用Descendants
。如果您想使用Level1
应用特定路径,则可以Parent
上的Level1
进行过滤;
var elementValue = doc.Descendants("Level2")
.Where(x => x.Parent.Name == "Level1")
.Select(x => x.Value).FirstOrDefault();
答案 2 :(得分:1)
您可以使用xpath,其语法与您完全相同:
var myValue = myXML.XPathSelectElement("Level1/Level2").Value;
XPathSelectElement
是扩展方法,因此您需要添加using System.Xml.XPath;
才能使用它。