如何使用XmlReader获取XML中特定子元素的值?这是XML字符串。问题1?abcdefg123问题2?12345678123那么如何获取给定问题ID的元素的值呢?比方说,如果我给idvalue="dd7e3bce-57ee-497a-afe8-e3d8d25e2671",我想返回字符串值abcdefg作为结果。varxmlstr="上述xml示例中的内容";使用(varreader=XmlReader.Create(newStringReader(xmlstr))){while(reader.Read()){if(reader.IsStartElement()){varattr=reader["id"];if(attr!=null&&attr=="dd7e3bce-57ee-497a-afe8-e3d8d25e2671"){if(reader.ReadToDescendant("response")){result=reader.Value;//<=获取空字符串?那怎么了?休息;你可能需要这样做,我认为问题是读者不会移动到文本,因为你变得空了if(reader.ReadToDescendant("response")){reader.Read();//this将reader移动到下一个节点,即textresult=reader.Value;//这可能比break更有价值;上面的对我有用,你可以在你的最后尝试我会使用LINQ2XML..XDocumentdoc=XDocument.Parse(xmlstr);Stringresponse=doc.Elements("question").Where(x=>x.Attribute("id")==id).Single().Element("response").Value;if(reader.NodeType==XmlNodeType.Element){if(reader.Name=="response"){reader.read();varres=reader.Value;}}//这对我有用!!!!您可以使用QuestionXML.xml中的此函数存储的xml获取特定问题ID的响应。以上就是C#学习教程:如何使用XmlReader获取XML中特定子元素的值?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注—privatestringgetResponse(stringquestionID){stringresponse=string.Empty;使用(StreamReadersr=newStreamReader("QuestionXML.xml",true)){XmlDocumentxmlDoc1=newXmlDocument();xmlDoc1.Load(sr);XmlNodeListitemNodes=xmlDoc1.GetElementsByTagName("question");if(itemNodes.Count>0){foreach(itemNodes中的XmlElement节点){if(node.Attributes["id"].Value.ToString()==questionID.Trim()){response=node.SelectSingleNode("response").InnerText;休息;}}}}返回响应;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
