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);
        }
Example #3
0
        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));
            }
        }