当前位置: 首页 > 编程语言 > C#

XPath和XPathSelectElement共享

时间:2023-04-11 00:12:42 C#

XPath和XPathSelectElement我有以下xml我已经尝试了所有方法来读取db2(="Name2")的名称和XPath查询的所有可能组合,但从未得到预期的结果。到目前为止我的代码:varquery="root/databases/db2..";//这里我已经尝试了所有方法vardoc=XDocument.Load("myconfig.xml");vardbName=doc.XPathSelectElement(查询);获取“Name2”(属性值)的正确查询是什么?感谢您的帮助。vardbName=doc.XPathSelectElement("root/databases/db2").Attribute("name");XPathSelectElement方法只能用于选择元素,不能用于属性。对于属性,您需要使用更通用的XPathEvaluate方法:varresult=((IEnumerable)doc.XPathEvaluate("root/databases/db2/@name")).OfType().Single().Value;//result=="Name2"要获取db2元素(Name2)的名称属性的值,试试这个:varquery="root/databases/db2";vardoc=XDocument.Load("myconfig.xml");vardbElement=doc.XPathSelectElement(查询);Console.WriteLine(dbElement.Attribute("name").Value);如果您不知道元素的名称(db2),但知道它具有服务器属性,请尝试以下操作:varquery="root/databases/*[@server]";vardoc=XDocument.Load("myconfig.xml");vardbElement=doc.XPathSelectElement(查询);Console.WriteLine(dbElement.Attribute("name").Value);如果你想和前面的例子做同样的事情,但是有多个带有服务器属性的元素,你想在它们之间进行选择,试试这个:全部内容,如果它对你有用并且你需要了解更多关于C#学习教程,希望大家多多关注—varquery="root/databases/*[@server='myserver']";vardoc=XDocument.Load("myconfig.xml");vardbElement=doc.XPathSelectElement(查询);Console.WriteLine(dbElement.Attribute("name").Value);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: