Как я могу извлечь префикс пространства имен XML из объекта XElement? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть объект XElement, извлеченный из объекта XDocument, например

XDocument doc = XDocument.Parse(@"<billpg:MyRoot xmlns:billpg=""http://billpg.com/rutabaga"" />");
XElement elem = doc.Root; /* Or any element inside the document. */

Как я могу извлечь префикс XML из этого объекта XElement?
(В приведенном выше примере для elem is "billpg".)

Я могу получить полное пространство имен URL из elem.Name.Namespace.NamespaceName, но вместо этого я пытаюсь вытянуть короткую часть "billpg".Также отмечу, что elem.ToString() возвращает строку, содержащую "billpg" в нужном месте, которое, вероятно, можно было бы вывести с помощью regex.Хотя это будет работать, на самом деле это не в духе использования библиотеки XML.

1 Ответ

1 голос
/ 19 сентября 2019

Для этого используйте метод GetPrefixOfNamespace():

var prefix = elem.GetPrefixOfNamespace(elem.Name.Namespace);

Более подробную информацию об этом вы можете найти в документации: https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xelement.getprefixofnamespace

...