如何获取System.Xml.Linq.XNode的名称?

Cro*_*oll 10 c# xml casting

每个XML元素<title />都有一个名称 - "title".我使用foreach枚举XNode.Nodes()方法提供的项目,并按标记名称处理每个项目.

我将XNode转换为XElement,以访问XElement.Name.LocalName属性以获取标记名称,如"title".

foreach(XElement as_element in doc.Nodes())
Run Code Online (Sandbox Code Playgroud)

我尝试解析此标记后出现问题:

<title>"Some text"</title>
Run Code Online (Sandbox Code Playgroud)

现在它的类型是XText(:XNode),我无法将其强制转换为XElement.我得到一个InvalidCastException.我怎样才能获得XNode的"名字"?

Cro*_*oll 18

INode并不总是有名字.最好使用Elements()代替Nodes(),枚举XElement中的子元素,然后我们有一个IEnumerable<XElement>.