从XNode中读取值

Duk*_*ade 26 c# xml linq

我有一些代码将XNode返回给我,如下所示:

<File>
  <Component>Main</Component>
  <Path>C:\Main\</Path>
  <FileName>main.txt</FileName>
</File>
Run Code Online (Sandbox Code Playgroud)

我需要一些能够提取Path值的C#代码(例如C:\ Main).我知道如果我使用XML节点,我可以这样做:

String filePath = xmlNode["Path"].InnerText;
Run Code Online (Sandbox Code Playgroud)

有人知道XNode的等价物是什么吗?任何帮助深表感谢!

Jon*_*eet 47

必须让它返回一个XNode而不是一个XElement?随着XElement它比使用简单XNode:

string filePath = fileElement.Element("Path").Value;
Run Code Online (Sandbox Code Playgroud)

那将找到第一个 Path元素,NullReferenceException如果没有,将抛出一个元素.如果您不满意,可以选择另一种方法null:

string filePath = (string) fileElement.Element("Path");
Run Code Online (Sandbox Code Playgroud)

如果你真的被困住了XNode,你要么必须施放XElement或者可能XContainer.


Giu*_*Giu 8

您可以将XNode转换为XElement以访问其属性,我的示例如下:

XNode lastNode = myXElement.LastNode;

//if I want to get the 'ID' attribute
string id = (lastNode as XElement).Attribute("ID").Value;
Run Code Online (Sandbox Code Playgroud)