XElement.Element("Leve1/Level2") 而不是 XElement.Element("Leve1").Element("Level2")

XElement.Element("Leve1/Level2") instead of XElement.Element("Leve1").Element("Level2")

如果我在 C# 中的 XElement myXML 变量中有以下 XML,

<Example>
   <Level1>
      <Level2>myvalue</Level2>
   </Level1>
</Example>

要获得 "myvalue" 我需要执行以下操作:

myXML.Element("Leve1").Element("Level2").Value;

是否有任何快捷方式可以做到这一点:

myXML.Element("Leve1/Level2").Value

谢谢...

试试下面的代码片段,

//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();

我个人建议您使用 Descendants。如果您想使用 Level1 应用特定路径,您可以在 Level1;

上按 Parent 过滤
var elementValue = doc.Descendants("Level2")
    .Where(x => x.Parent.Name == "Level1")
    .Select(x => x.Value).FirstOrDefault();

您可以使用具有完全相同语法的 xpath:

var myValue = myXML.XPathSelectElement("Level1/Level2").Value;

XPathSelectElement为扩展方法,需要添加using System.Xml.XPath;才能使用