从返回的WDSL中解析XML

时间:2019-03-07 10:11:24

标签: xml web-services wsdl

从不曾与Web服务合作过,所以请保持谦虚,将我视为白痴。我使用c#asp.net中的服务引用从Web服务成功返回了以下xml结构

<Rows>
<Type>
<ID>5555557</ID>
<Type_Name>Product 1 Name </Type_Name>

<AvailableDate>18/03/2019</AvailableDate>
<AvailableDate>01/04/2019</AvailableDate>
<AvailableDate>15/04/2019</AvailableDate>
<AvailableDate>29/04/2019</AvailableDate>
<AvailableDate>13/05/2019</AvailableDate>
<AvailableDate>28/05/2019</AvailableDate>
<AvailableDate>10/06/2019</AvailableDate>
<AvailableDate>24/06/2019</AvailableDate>

<service>FALSE</service>
</Type>

<Type>
<ID>5555559</ID>
<Type_Name>Product 2 Name </Type_Name>

<AvailableDate>11/03/2019</AvailableDate>
<AvailableDate>25/03/2019</AvailableDate>
<AvailableDate>08/04/2019</AvailableDate>
<AvailableDate>23/04/2019</AvailableDate>
<AvailableDate>07/05/2019</AvailableDate>
<AvailableDate>20/05/2019</AvailableDate>
<AvailableDate>03/06/2019</AvailableDate>
<AvailableDate>17/06/2019</AvailableDate>
<AvailableDate>01/07/2019</AvailableDate>
<AvailableDate>15/07/2019</AvailableDate>
<AvailableDate>29/07/2019</AvailableDate>
<AvailableDate>12/08/2019</AvailableDate>
<AvailableDate>27/08/2019</AvailableDate>
<AvailableDate>09/09/2019</AvailableDate>
<AvailableDate>23/09/2019</AvailableDate>

<service>FALSE</service>
</Type>
</Rows>

我正在使用列表和stringbuilder来写出xml,并且ID和Type_name一切正常,然后成功显示。 但是在将可用日期包装为数组以显示为上述内容的一部分时遇到了麻烦。 我本来希望另一个Xml节点引用可用日期,但是它们都处于同一级别。 有什么想法吗?

enter 

SR1.WebService2SoapClient client = new SR1.WebService2SoapClient("WebService2Soap");
 XmlNode node = client.getMethodpaiingcredentials(cred1, "cred2");           

            XmlReader r = XmlReader.Create(new StringReader(node.OuterXml));
           //adding to a static list
            MyList = (          
                      from e in XDocument.Load(r).Root.Elements("Type")
                      select new Property //(public class)
                      {
                          ID = (int)e.Element("ID"),                         
                          Type = (string)e.Element("Type_Name"),
						//Trying to wrap all dates in loop
                          CDate = (
                              from o in e.Elements("Type").Elements("AvailableDate")
                              select new AvailableDates
                              {                           
							  ADate = (DateTime)o.Element("AvailableDate"),
                              })
                              .ToArray()
                      })
                      .ToList();

            StringBuilder sb = new StringBuilder();
            foreach (var xmlID in MyList)
            {
                sb.Append("<table border='1px' cellpadding='1' cellspacing='1' class='customers'>\n");
                sb.Append("<TD>"); sb.Append(xmlID.ID); sb.Append("</TD>");
                sb.Append("<TD>"); sb.Append(xmlID.Type_Name); sb.Append("</TD>");


                foreach (var OD in myList[0].CDate)
                {
                    
                    sb.Append("<TD>"); sb.Append(OD.ColDate); sb.Append(" - </TD>");
                   
                }

                sb.Append("</TR>\n");                
            }
            sb.Append("</TABLE>");
            litCollections.Text = sb.ToString();

这里

0 个答案:

没有答案