C#解析XML文件我在用C#解析XML文件(RSSFeed)时遇到问题。我只想读出“条目”条目(根父级-“提要”-不相关)。除了“状态”部分外,所有“条目”条目几乎都是偶数。有些条目没有此条目。所以我只想读出以下内容:“条目”节点:更新过期标题摘要国家/地区(如果存在)有什么建议吗?非常感谢。2011-01-01T00:00:00+0100MrXMr_X@domain.com一些信息....domain.com2011-01-01T00:00:00Z2011-01-02T00:00:00Z我的第一个标题第一个ID我的第一个重要摘要domain.com2011-01-01T00:00:00Z2011-01-02T00:00:00Z我的第二个Titleactive第二个ID我的第二个重要摘要domain.com{2011-01-01T00:00:00+0100X先生Mr_X@domain.com一些信息....domain.com2011-01-01T00:00:00Z2011-01-02T00:00:00Z我的第一个TitleFirstID我的第一个重要摘要domain.com2011-01-01T00:00:00Z2011-01-02T00:00:00ZMysecondTitleactiveSecondIDMysecondimportantsummarydomain.com我目前的C#代码:publicvoidParseXML(XmlDocumentxmlFile){ArrayListupdated=newArrayList();ArrayList过期=newArrayList();ArrayListtitle=newArrayList();ArrayList摘要=newArrayList();ArrayListstate=newArrayList();ObservableCollectiontrafInfo=newObservableCollection();myCollection=trafInfo;Xml编号deReaderreader=newXmlNodeReader(xmlFile);StringBuilder输出=newStringBuilder();while(reader.Read()){switch(reader.NodeType){caseXmlNodeType.Element:if(reader.Name=="updated"){updated.Add(reader.ReadString());}if(reader.Name=="expires"){expires.Add(reader.ReadString());}if(reader.Name=="title"){标题。添加(阅读器。ReadString());}if(reader.Name=="summary"){summary.Add(reader.ReadString());}if(reader.Name=="state"){state.Add(reader.ReadString());}休息;在这种情况下,我没有数据之间的关系(如果状态不存在)您可以使用XPath表达式。这是控制台应用程序的完整示例-当您使用xlmns命名空间时,它需要对ParseXML方法进行轻微修改。使用系统;使用System.Xml;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){XmlDocumentxmlDocument=newXmlDocument();xmlDocument.Load("XMLFile1.xml");XmlNamespaceManagerxmlnm=newXmlNamespaceManager(xmlDocument.NameTable);xmlnm.AddNamespace("ns","http://www.w3.org/2005/Atom");ParseXML(xmlDocument,xmlnm);Console.WriteLine("n---XML解析---");控制台.ReadKey();}publicstaticvoidParseXML(XmlDocumentxmlFile,XmlNamespaceManagerxmlnm){XmlNodeListnodes=xmlFile.SelectNodes("//ns:updated|//ns:expires|//ns:title|//ns:summary|//ns:state",xmlnm);foreach(节点中的XmlNode节点){Console.WriteLine(node.Name+"="+node.InnerXml);}}}}//在XPath表达式中,您想选择具有特定名称的所有节点,无论它们位于何处。如果你只想搜索元素,你可以使用以下命令:“//ns:entry/ns:updated|//ns:entry/ns:expires|//ns:entry/ns:title|//ns:entry/ns:summary|//ns:entry/ns:state"我认为直接解析XML的最简单方法是使用LINQ-TO-XML。您可以在这里找到更多信息。以上就是C#学习教程:C#解析XML文件分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
