使用XmlReader读取属性值我有一个XML文件想从这里读取,有如下代码:usingSystem;使用System.Collections.Generic;使用系统.Linq;使用系统文本;使用System.Xml;使用System.IO;命名空间XML{类程序{staticvoidMain(string[]args){XmlTextReadertextReader=newXmlTextReader("secLendingXML.cfm.xml");while(textReader.Read()){switch(textReader.NodeType){caseXmlNodeType.Element:Console.WriteLine(textReader.Name);Console.WriteLine(textReader.Value);休息;案例XmlNodeType.Text:Console.WriteLine(textReader.Value);休息;案例XmlNodeType.XmlDeclaration:案例XmlNodeType.ProcessingInstruction:Console.WriteLine(textReader.Name+""+textReader.Value);休息;案例XmlNodeType.Comment:Console.WriteLine(textReader.Value);休息;案例XmlNodeType.EndElement:中断;}}Console.ReadLine();}}}在节点被读取和名称被返回的意义上,代码工作正常。但是,问题是我正在尝试检索节点内的数据。换句话说,当它读取测试部分之后的第一部分时,它将读取:slnc:DataSetslnc:Groupslnc:Sectionslnc:ActualAvailableToBorrow***here***slnc:ousstandingLoans这就是我希望文本阅读器读取节点内部的以下值,如confidentiality="F"、currency="USD"等,但它只是跳到下一部分而不读取这些值!如何让文本阅读器读取属性值?打印值“currency”,然后是它的值:“F”,等等。获取单个命名属性使用XmlTextReader.GetAttribute(MSDN)案例XmlNodeType.Element:Console.WriteLine(textReader.Name);Console.WriteLine(textReader.Value);Console.WriteLine(textReader.GetAttribute("货币"));这个函数的一个很好的特性:如果属性没有定义,它不会导致异常——它只是返回Null。获取所有属性使用XmlTextReader.MoveToAttribute(MSDN)UseAttributeCountattributewithMoveToAttribute:caseXmlNodeType.Element:Console.WriteLine(textReader.Name);Console.WriteLine(textReader.Value);for(intattInd=0;attIndyou可以稍微改变循环条件,使其也遍历属性:while(textReader.MoveToNextAttribute()||textReader.Read()){caseXmlNodeType.Element:Console.WriteLine(textReader.Name);Console.WriteLine(textReader.Value);break;//...caseXmlNodeType.Attribute://在此处使用textReader.Name和textReader.Value作为属性名称和值break;}MoveToNextAttribute方法推进reader读取当前元素中的下一个属性,如果没有,则返回false以上是C#学习教程:使用XmlReader读取属性值共享的全部内容,如果对大家有用,还需要详细了解C#学习教程,希望大家多多关注---本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载,请注明出处:
