如何从 XElement 对象中提取 XML 命名空间前缀?
How can I pull out the XML namespace prefix from an XElement object?
例如,我从 XDocument 对象中提取了一个 XElement 对象
XDocument doc = XDocument.Parse(@"<billpg:MyRoot xmlns:billpg=""http://billpg.com/rutabaga"" />");
XElement elem = doc.Root; /* Or any element inside the document. */
如何从此 XElement 对象中提取 XML 前缀?
(在上面的例子中 elem
是 "billpg"。)
我可以从 elem.Name.Namespace.NamespaceName
获得完整的 URL 命名空间,但我正在尝试提取短的 "billpg" 部分。我还会注意到 elem.ToString()
returns 一个在正确位置包含 "billpg" 的字符串,这可能是正则表达式。虽然这可行,但它并不真正符合使用 XML 库的精神。
使用GetPrefixOfNamespace()
方法实现:
var prefix = elem.GetPrefixOfNamespace(elem.Name.Namespace);
您可以在文档中找到更多相关信息:
https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xelement.getprefixofnamespace
例如,我从 XDocument 对象中提取了一个 XElement 对象
XDocument doc = XDocument.Parse(@"<billpg:MyRoot xmlns:billpg=""http://billpg.com/rutabaga"" />");
XElement elem = doc.Root; /* Or any element inside the document. */
如何从此 XElement 对象中提取 XML 前缀?
(在上面的例子中 elem
是 "billpg"。)
我可以从 elem.Name.Namespace.NamespaceName
获得完整的 URL 命名空间,但我正在尝试提取短的 "billpg" 部分。我还会注意到 elem.ToString()
returns 一个在正确位置包含 "billpg" 的字符串,这可能是正则表达式。虽然这可行,但它并不真正符合使用 XML 库的精神。
使用GetPrefixOfNamespace()
方法实现:
var prefix = elem.GetPrefixOfNamespace(elem.Name.Namespace);
您可以在文档中找到更多相关信息: https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xelement.getprefixofnamespace