使用C#获取XML文档的属性值假设我有如下的XML文档。更多节点转到此处如何获取属性success的值,在本例中为字符串“true”。我会尝试这样的事情:XmlDocumentdoc=newXmlDocument();doc.LoadXml("这里有更多节点");XmlElementroot=doc.DocumentElement;字符串s=root.Attributes["成功"].Value;XML加载到XmlDocument中,可以通过多种方式获取属性的值。您可以使用XPath查找属性:XmlAttributea=doc.SelectSingleNode("/reply/@success");控制台.Write(a.Value);如果您已经拥有属性出现的XmlElement(在本例中为文档元素),则可以使用GetAttribute:Console.Write(doc.DocumentElement.GetAttribute("success"));如果您使用XPathDocument或XmlReader或XDocument,则有类似的方法。但是,在所有情况下,您都希望通过名称而不是位置来获取属性。在您的测试用例中,只有一个属性;在任何真实世界的应用程序中,都可能有多个属性,并且属性在XML中的顺序无关紧要。这两个元素在语义上是等价的:您甚至不知道XML解析器会按照它们在文档中出现的顺序向您显示属性;根据实现的不同,解析器可能会按字母顺序或随机顺序为您提供它们。(我都看过。)使用系统;使用System.Linq;使用System.Xml.Linq;classMyClass{staticvoidMain(string[]args){XElementxmlcode=XElement.Parse("更多节点开始");varsuccessAttributes=fromattributeinxmlcode.Attributes()whereattribute.Name.LocalName=="success"选择属性;if(successAttributes.Count()>0)foreach(varsainsuccessAttributes){Console.WriteLine(sa.Value);}控制台.ReadLine();}}varat=XElement.Parse("Morenodesgo").Attribute("success");如果(在!=null)Console.Write(at.Value);以下代码适用于我。StringstrXML="这里有更多节点";使用(XmlReaderreader=XmlReader.Create(newStringReader(strXML))){reader.ReadToFollowing("reply");阅读器.MoveToContent();stringstrValue=reader.GetAttribute("成功");控制台.WriteLine(strValue);这里有一个使用XmlReader的替代解决方案,它可能比使用XmlDoument更高效,虽然在这么小的XML文档上这是可以忽略不计的以上是C#学习教程:使用C#获取XML的属性值共享的所有内容文档。如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——stringinput="Morenodesgohere";使用(XmlReaderxmlReader=XmlReader.Create(newStringReader(input))){xmlReader.MoveToContent();字符串成功=xmlReader.GetAttribute("成功");控制台.WriteLine(成功);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
