我一直在从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);
问:Xelement是否必须具有名称空间?
当我像这样使用它时:
XElement xEle = XElement.Parse(xml);
String tagName = xEle.Name.LocalName;
它给出了第一个元素的名称,为什么?
(请说明XElement.XName和XElement.XName.LocalName的区别和可能的用法)
最佳答案
XElement
具有一个名称,表示为XName
。该XName
可能有也可能没有与之关联的名称空间。如果不是,XName.Namespace
属性将返回XNamespace.None
。XName
基本上是完全限定的名称-而XName.LocalName
仅给出本地部分。
因此,在您的示例中:
本地名称是Root
名称空间URI为http://www.adventure-works.com
具有名称空间的XName
与没有名称空间(或具有不同名称空间)的XName
不同。因此,例如,Element(XName)
方法将找不到名称与指定本地名称相同但名称空间不同的元素。
关于c# - XElement及其属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21529611/