Десериализовать канал RSS в C # .Net - PullRequest
0 голосов
/ 01 декабря 2011

Я очень плохо знаком с десериализацией, но передо мной была поставлена ​​задача десериализации нескольких каналов и извлечения данных для манипуляции.

У меня есть этот канал RSS, который структурирован так:

    <channel>
        <title></title>
        <link></link>
        <description></description>
        <ttl></ttl>
        <item>
            <title></title>
            <link></link>
            <description></description>
            <pubDate></pubDate>
            <guid></guid>
        </item>
        <item>

в моей программе у меня следующая структура класса

[XmlRoot("channel")]
public class RahChannel
{
    [XmlElement("title")]
    public string title { get; set; }

    [XmlElement("link")]
    public string link { get; set; }

    [XmlElement("description")]
    public string description { get; set; }

    [XmlElement("ttl")]
    public int ttl { get; set; }

    [XmlElement("item")]
    public ItemSet[] ItemArray { get; set; }
 }

[XmlArray]
class ItemSet
{
    [XmlElement("title")]
    public string itemtitle { get; set; }

    [XmlElement("link")]
    public string itemLink { get; set; }

    [XmlElement("description")]
    public string itemDescription { get; set; }

    [XmlElement("pubDate")]
    public string pubDate { get; set; }

    [XmlElement("guid")]
    public string guid { get; set; }
}

Я, очевидно, использую класс system.xml.serialization.

Меня беспокоит то, что элементымассив Items не получит значения, которые должны получить, потому что они имеют общие имена с элементами вне массива, а также правильно ли я создал массив?.

я использовал эту структуру для десериализации каналов JSON ион работал там, но я не уверен, правильно ли я его перевел.

и каков на самом деле метод десериализации XML?я знаю, что MSDN говорит, что я могу сделать (http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.deserialize%28v=vs.71%29.aspx),, но я просто хочу подтвердить. Приветствия.

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

Вы можете использовать XSD для генерации класса из вашей XML-схемы

http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx

1 голос
/ 01 декабря 2011

Сделать класс itemSet общедоступным.Также взгляните на этот проект: http://argotic.codeplex.com/ - возможно, вам не нужно реализовывать ту же функциональность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...