【发布时间】:2016-06-16 14:12:46
【问题描述】:
我已经生成了这段代码来从字符串中读取 xml 文件,但是它有问题。值得注意的是,ReadToFollowing() 方法不返回任何内容。它似乎在寻找整个 xmlstring,然后将 XMLReader 状态设置为 EndofFile。我对此感到非常困惑,ReadStartElement() 有效,并且下一个元素被读取为您所期望的“标题”。
这是我的代码,我的想法是通过 xml 读取我需要的字段;
List<string> contentfields = new List<string>() { "heading", "shortblurb", "description" };
string xml = @"<filemeta filetype='Audio'><heading>Fatigue & Tiredness</heading><shortblurb>shortblurb</shortblurb><description /><Comments /><AlbumTitle /><TrackNumber /><ArtistName /><Year /><Genre /><TrackTitle /></filemeta>";
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
reader.ReadStartElement("filemeta");
foreach (String field_str in contentfields)
{
reader.ReadToFollowing(field_str);
if (reader.Name.ToString() == field_str)
{
Console.WriteLine(field_str + " " + reader.ReadElementContentAsString());
}
}
}
Console.ReadKey();
【问题讨论】:
标签: xmlreader