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;
才能使用
如果我在 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;
才能使用