c# - 如何从 XElement 对象中提取 XML 命名空间前缀?
问题描述
例如,我从 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”。)
我可以从 获取完整的 URL 命名空间elem.Name.Namespace.NamespaceName
,但我正在尝试提取简短的“billpg”部分。我还要注意,elem.ToString()
它会在正确的位置返回一个包含“billpg”的字符串,这可能会被正则表达式输出。虽然这可行,但它并不真正符合使用 XML 库的精神。
解决方案
使用GetPrefixOfNamespace()
方法来实现这一点:
var prefix = elem.GetPrefixOfNamespace(elem.Name.Namespace);
您可以在文档中找到更多信息: https ://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xelement.getprefixofnamespace
推荐阅读
- android - java.lang.IllegalStateException:期望 .、< 或 ;,但在解包时发现 firebaseperf
- javascript - 防止jquery datepicker在日期点击时重定向
- angular - 在 Angular 5 中,如何在路由到不同视图之前执行动画?
- angular - 如何在 angular2 应用程序的 Prime ng 中提供内联编辑和删除按钮以及新按钮
- c - 插入数组期间整数值发生变化
- ruby - 如何安全加载包含多个文档的 YAML 文件?
- spring-boot - 为 AWS cloudwatch 的 Micrometer 配置 SpringBoot 2 应用程序
- database - 如何覆盖odoo 11中的数据库选择器网页?
- forms - 提交前和数据输入时的表单验证
- c# - 模型状态错误过滤器