我正在反序列化一个 opml 文件,该文件有一个轮廓,里面有更多轮廓。像:
<outline text="Stations"...>
<outline.../>
<outline.../>
.....
</outline>
在此之后有更多奇异的轮廓:
<outline/>
<outline/>
现在我只想反序列化“站”轮廓内的轮廓。如果我直接使用 Xml.Deserializer 它总是包含所有的轮廓。
我有一个课程大纲如下:
public class Outline
{
public string Text { get; set; }
public string URL { get; set; }
}
我正在使用 Restsharp 得到这样的响应:
RestClient client = new RestClient("http://opml.radiotime.com/");
RestRequest request = new RestRequest(url, Method.GET);
IRestResponse response = client.Execute(request);
List<Outline> outlines = x.Deserialize<List<Outline>>(response);
我成功地得到了响应,那里没有问题,但我只想要来自“站”大纲内部的数据。
我该怎么做呢?如何选择“站”大纲?
我试图反序列化使用这个类:
public class Outline
{
public string Text { get; set; }
public string URL { get; set; }
public Outline[] outline {get; set;}
}
但这不起作用,因为只有一个大纲里面有更多的大纲。此外,我不能简单地从列表中删除轮廓,因为值和名称会改变。
我想要的是以某种方式在反序列化“之前”选择“站”轮廓,然后解析其中的其余轮廓。我如何实现这一目标?
这是 opml 数据的网址:http://opml.radiotime.com/Browse.ashx?c= local
感谢您的帮助!