c# - Xdocument - 读取带有前缀的属性值

标签 c# linq linq-to-xml

很容易找到 Xdocument 属性的值,但是我们如何找到带有前缀/命名空间的属性。

XML 代码

 <label:label xlink:type="resource" xlink:label="something" xlink:lang="en" xlink:id="res_4">My value</label:label>

我正在尝试读取属性值 xlink:Id(其中 p 是 XElement)

p => p.Attribute("xlink:id").Value 

这根本不起作用。

最佳答案

假设您在 XML 中的某处声明了命名空间前缀:

xmlns:xlink="dummy.url"

您可以使用指向上述 namespace URI 的 XNamespace 变量来访问 namespace 中的属性:

XNamespace xlink = "dummy.url";
.....
p => p.Attribute(xlink+"id").Value
//or simply cast the XAttribute to string 
//to avoid exception when the attribute not found in p
p => (string)p.Attribute(xlink+"id")

关于c# - Xdocument - 读取带有前缀的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25565961/

相关文章:

linq - 使用 Linq to Xml 获取值(value)

c# - 数据库未创建和初始化

c# - 将简单的 SQL group-by 转换为 LINQ to SQL

c# - 比较内存中的 2 个无序记录集

c# - 为什么可空值序列的 Linq-to-Objects 总和本身可以为空?

c# - 在 Linq 2 xml 方面需要一些帮助

c# - 使用 C# 检查 SQL Server 表中是否存在记录的最佳方法是什么?

c# - 为什么我的 WPF 应用程序在显示 WinForms 对话框后不能正常关闭?

c# - 如何在 ASP.NET 应用程序中使用 Graphviz?

c# - 如何在反序列化对象后创建用于加载 XML 文件的 XDocument 实例?