public void TestDoAnalyse_解析XML文本成功_部分匹配() { string xml = "" + "<rsp>" + " <totalResults>23</totalResults>" + " <item>" + " <iid><![CDATA[11111111]]></iid>" + " <title><![CDATA[标题一]]></title>" + " <detail_url><![CDATA[http://item.taobao.com/auction/item1.jhtml]]></detail_url>" + " </item>" + " <item_new>" + " <iid><![CDATA[22222222]]></iid>" + " <title><![CDATA[标题二]]></title>" + " <detail_url><![CDATA[http://item.taobao.com/auction/item2.jhtml]]></detail_url>" + " </item_new>" + " <item>" + " <iid><![CDATA[33333333]]></iid>" + " <title><![CDATA[标题三]]></title>" + " <detail_url><![CDATA[http://item.taobao.com/auction/item3.jhtml]]></detail_url>" + " </item>" + "</rsp>"; TOPDataList<DataItem_Item_item> list = new TOPDataList<DataItem_Item_item>(); Assert.AreEqual(0, list.TotalResultNum); Assert.AreEqual(0, list.Count); list.AnalyseXML(xml); Assert.AreEqual(XmlAnalyseState.Success, list.AnalyseState); Assert.AreEqual(23, list.TotalResultNum); Assert.AreEqual(2, list.Count); Assert.AreEqual("11111111", list[0].Id); Assert.AreEqual("标题一", list[0].Title); Assert.AreEqual("http://item.taobao.com/auction/item1.jhtml", list[0].DetailUrl); }
public void TestDoAnalyse_解析XML文本成功_部分匹配() { string xml = "" + "<rsp>" + " <totalResults>23</totalResults>" + " <item>" + " <iid><![CDATA[11111111]]></iid>" + " <title><![CDATA[标题一]]></title>" + " <detail_url><![CDATA[http://item.taobao.com/auction/item1.jhtml]]></detail_url>" + " </item>" + " <item_new>" + " <iid><![CDATA[22222222]]></iid>" + " <title><![CDATA[标题二]]></title>" + " <detail_url><![CDATA[http://item.taobao.com/auction/item2.jhtml]]></detail_url>" + " </item_new>" + " <item>" + " <iid><![CDATA[33333333]]></iid>" + " <title><![CDATA[标题三]]></title>" + " <detail_url><![CDATA[http://item.taobao.com/auction/item3.jhtml]]></detail_url>" + " </item>" + "</rsp>"; TOPDataList <DataItem_Item_item> list = new TOPDataList <DataItem_Item_item>(); Assert.AreEqual(0, list.TotalResultNum); Assert.AreEqual(0, list.Count); list.AnalyseXML(xml); Assert.AreEqual(XmlAnalyseState.Success, list.AnalyseState); Assert.AreEqual(23, list.TotalResultNum); Assert.AreEqual(2, list.Count); Assert.AreEqual("11111111", list[0].Id); Assert.AreEqual("标题一", list[0].Title); Assert.AreEqual("http://item.taobao.com/auction/item1.jhtml", list[0].DetailUrl); }
public TOPDataList <T> AnalyseDataList <T>(string responseXml) where T : TOPDataItem, new() { TOPDataList <T> list = new TOPDataList <T>(); XmlDocument doc = new XmlDocument(); doc.LoadXml(responseXml); XmlElement element = doc.DocumentElement; if (element.Name.Equals("rsp", StringComparison.OrdinalIgnoreCase)) { list.AnalyseXML(element.OuterXml); return(list); } else if (element.Name.Equals("error_rsp", StringComparison.OrdinalIgnoreCase)) { throw new ResponseException(element.OuterXml, "服务器返回错误响应消息"); } else { throw new Exception(string.Format("无法解析服务器返回XML格式 - \"{0}\"", element.Name)); } }