2014-02-03 3 views
1

Я искал разъяснений между XName, XNamespace & XElement.Name.LocalName из msdn.microsoft.com пример утверждает, чтоXElement и это атрибуты

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

Q. ли XElement должен иметь пространство имен обязательно?

Когда я использую его как:

XElement xEle = XElement.Parse(xml); 
String tagName = xEle.Name.LocalName; 

Это дает первое имя элемента, то почему?

(Просьба уточнить, если это возможно разница & возможно использование XElement.XName & XElement.XName.LocalName)

+0

Пространства имен не являются обязательными. 'XName' состоит из пространства имен и имени. Что ты не понимаешь? – SLaks

ответ

5

XElement имеет имя, представленное как XName. То, что XName может иметь или не иметь связанное с ним пространство имен. Если это не так, свойство XName.Namespace вернет XNamespace.None.

XName является полностью квалифицированным именем, в основном - тогда как XName.LocalName предоставит только местную часть.

Таким образом, в вашем примере:

  • Местное название Root
  • Пространство имен URI является http://www.adventure-works.com

XName с пространством имен является не такой же, как XName без пространства имен (или с другим пространством имен). Так, например, метод Element(XName) будет не найти элемент с именем с указанным локальным именем, но с другим пространством имен.

1

В. Должен ли Xelement иметь пространство имен обязательно?

No.

Это дает первое имя элемента, то почему?

Поскольку вы разбираете свой XML и получаете корневой элемент, содержащий все элементы. Таким образом, он дает вам имя элемента root.

 Смежные вопросы

  • Нет связанных вопросов^_^