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