XElement及其属性

pxm*_*pxm 1 c# xml linq xelement

我一直在寻找来自msdn.microsoft.com的XName,XNamespace和XElement.Name.LocalName之间的澄清.示例说明

  XNamespace ns = "http://www.adventure-works.com";
  XElement root = new XElement(ns + "Root", "content");
  Console.WriteLine(root.Name);
Run Code Online (Sandbox Code Playgroud)

问:Xelement必须具有命名空间吗?

当我使用它时:

 XElement xEle = XElement.Parse(xml);
 String tagName = xEle.Name.LocalName;
Run Code Online (Sandbox Code Playgroud)

它给出了第一个Element的名字,为什么?

(请尽可能澄清XElement.XName和XElement.XName.LocalName的区别和可能用途)

Jon*_*eet 5

一个XElement有一个名称,表示为XName.这XName可能会或可能不会有与之相关的命名空间.如果没有,该XName.Namespace物业将返回XNamespace.None.

An XName基本上是一个完全限定的名称 - 而XName.LocalName只会给出本地部分.

所以在你的例子中:

  • 本地名称是 Root
  • 名称空间URI是 http://www.adventure-works.com

XName与命名空间是一样的XName不带名称空间(或具有不同的命名空间).因此,例如,该Element(XName)方法将不会找到与指定的本地名称,但不同的命名空间名称的元素.