C# 获取特定节点的xml属性值

C# 获取特定节点的xml属性值,c#,xml,C#,Xml,感谢您的帮助 无法使用XPath获取属性(实际上XPathSelectElement方法名称声明,其目的是选择元素)。所以,您应该选择元素,然后获取其属性(假设您使用的是Linq to XML。如果不是,我建议您开始这样做): 实际上,在这种情况下使用XPath没有任何好处: (string)doc.XPathSelectElement("//A").Attribute("testId") 您无法使用XPath获取属性(实际上XPathSelectElement方法名称声明,其目的是选择元素)

感谢您的帮助

无法使用XPath获取属性(实际上
XPathSelectElement
方法名称声明,其目的是选择元素)。所以,您应该选择元素,然后获取其属性(假设您使用的是Linq to XML。如果不是,我建议您开始这样做):

实际上,在这种情况下使用XPath没有任何好处:

(string)doc.XPathSelectElement("//A").Attribute("testId")

您无法使用XPath获取属性(实际上
XPathSelectElement
方法名称声明,其目的是选择元素)。所以,您应该选择元素,然后获取其属性(假设您使用的是Linq to XML。如果不是,我建议您开始这样做):

实际上,在这种情况下使用XPath没有任何好处:

(string)doc.XPathSelectElement("//A").Attribute("testId")

假设您有xml文件XMLFile1.xml,然后尝试下面的代码,它将给出您的结果
test

(string)doc.Root.Element("A").Attribute("testId")
更新:-

正如Sergey所建议的,使用强制转换比访问Value属性更安全,所以更新代码如下

 XDocument xDoc = XDocument.Load("XMLFile1.xml");
 var test = xDoc.Root.Element("A").Attribute("testId").Value;

假设您有xml文件XMLFile1.xml,然后尝试下面的代码,它将给出您的结果
test

(string)doc.Root.Element("A").Attribute("testId")
更新:-

正如Sergey所建议的,使用强制转换比访问Value属性更安全,所以更新代码如下

 XDocument xDoc = XDocument.Load("XMLFile1.xml");
 var test = xDoc.Root.Element("A").Attribute("testId").Value;

你不认为。属性(“testId”)后需要值吗?@Neel nope-使用强制转换比访问
value
属性更安全。如果未找到属性或元素,则
.Value
将抛出
NullReferenceException
您不这样认为吗。属性(“testId”)后需要值?@Neel nope-使用强制转换比访问
Value
属性更安全。如果未找到属性或元素,则
.Value
将抛出
NullReferenceException