从API处理XML输出

时间:2017-09-27 05:34:33

标签: c# ebay-api

我从Ebay API调用中获得XML返回。这实际上是Ebay类别的集合列表。但问题是,我无法从XML输出访问其集合。我附上了两张图片 - 第一张显示XML值返回变量的调试,第二张显示" InnerList"。我的主要目标是准备这个XML数据存储在我的数据库中,所以我需要一个干净的XML数据列表。有什么想法吗?

Picture One

Picture Two

2 个答案:

答案 0 :(得分:1)

您可以将xml反序列化为您自己的类/对象 - 然后它可能更容易使用。我所做的就是将xml标签放到一个类中,我可以反序列化它。请参阅以下课程和方法:

public static T Deserialize<T>(string xmlText)
{
    try
    {
        var stringReader = new System.IO.StringReader(xmlText);
        var serializer = new XmlSerializer(typeof(T));
        return (T)serializer.Deserialize(stringReader);
    }
    catch
    {
        throw;
    }
}

[XmlElement("adress")]
public class Adress
{
    [XmlElementAttribute("street_address")]
    public string street_address { get; set; }

    [XmlElementAttribute("postal_code")]
    public string postal_code { get; set; }

    [XmlElementAttribute("city")]
    public string city { get; set; }

    [XmlElementAttribute("country")]
    public string country { get; set; }
}

public main()
{
     Adress myAdress = Deserialize<Adress>(XMLstring);
}

希望它有所帮助!

答案 1 :(得分:0)

您似乎正在使用Ebay SDK。请尝试使用以下代码处理返回值。

foreach (CategoryTypeCollection item in categories)
                    {
                        item.ItemAt(0).CategoryID = "This is how you access the properties of he returned result";
                        // THE XML is already parsed for you via SDK, so you don't have to parse it... 
                        // since i wrote foreach loop here, always access itemAt 0th index posiiton 
                    }