c# – 使用XMLTextReader,我怎么知道我在哪个元素?
发布时间:2020-12-15 17:21:58 所属栏目:百科 来源:网络整理
导读:这就是我的代码: case "Creator": br.Read(); br.MoveToContent(); // gives the content of the role tbComposer.Text = br.Value; br.Read(); br.MoveToContent(); // gives the content of the role tbConductor.Text = br.Value; br.Read(); br.MoveToC
这就是我的代码:
case "Creator": br.Read(); br.MoveToContent(); // gives the content of the role tbComposer.Text = br.Value; br.Read(); br.MoveToContent(); // gives the content of the role tbConductor.Text = br.Value; br.Read(); br.MoveToContent(); // gives the content of the role tbOrchestra.Text = br.Value; break; 这是工作代码:(感谢大家的意见……如果没有你,就不可能做到!)Spokane-Dude case "Creator": br.MoveToFirstAttribute(); if (br.Value == "Composer") { br.Read(); tbComposer.Text = br.Value; } if (br.Value == "Conductor") { br.Read(); tbConductor.Text = br.Value; } if (br.Value == "Orchestra") { br.Read(); tbOrchestra.Text = br.Value; } break; 这就是我的XML的样子: <ItemLookupResponse> <OperationRequest/> <Items> <Request/> <Item> <ItemAttributes> <Binding>Audio CD</Binding> <CatalogNumberList> <CatalogNumberListElement>43850</CatalogNumberListElement> </CatalogNumberList> <Creator Role="Composer">Gioachino Rossini</Creator> <Creator Role="Conductor">Riccardo Chailly</Creator> <Creator Role="Orchestra">National Philharmonic Orchestra</Creator> </ItemAttributes> </Item> </Items> </ItemLookupResponse> 我需要知道我是否正在阅读元素Creator Role =“Composer”或Creator Role =“Conductor”等 那么,使用XMLTextReader,我如何确定元素文本是什么? 解决方法
这个样本怎么样?我希望它对你有用
static void Main(string[] args) { string xmlStr = "<?xml version="1.0" encoding="utf-8" ?><Creators><Creator Role="Composer">Gioachino Rossini</Creator><Creator Role="Conductor">Riccardo Chailly</Creator><Creator Role="Orchestra">National Philharmonic Orchestra</Creator></Creators>"; using (XmlReader xmlReader = XmlTextReader.Create(new StringReader(xmlStr))) { xmlReader.MoveToContent(); xmlReader.ReadStartElement("Creators",""); SomeMethod("Composer",xmlReader); SomeMethod("Conductor",xmlReader); SomeMethod("Orchestra",xmlReader); } Console.WriteLine("........"); Console.Read(); } static void SomeMethod(string role,XmlReader xmlReader) { xmlReader.MoveToAttribute("Role"); switch (role) { case "Composer": { xmlReader.MoveToContent(); Console.WriteLine(string.Format("Composer:{0}",xmlReader.ReadElementContentAsString())); } break; case "Conductor": { xmlReader.MoveToContent(); Console.WriteLine(string.Format("Conductor:{0}",xmlReader.ReadElementContentAsString())); } break; case "Orchestra": { xmlReader.MoveToContent(); Console.WriteLine(string.Format("Orchestra:{0}",xmlReader.ReadElementContentAsString())); } break; default: break; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |