简体   繁体   中英

Xdocument.Load is failing

I am unable to load Xdocument.Load I am unable to load Xdocument.LoadI am unable to load Xdocument.LoadI am unable to load Xdocument.LoadI am unable to load Xdocument.LoadI am unable to load Xdocument.LoadI am unable to load Xdocument.LoadI am unable to load Xdocument.LoadI am unable to load Xdocument.Load

   public void AuthorNames(string Uri)
    {

        CredentialCache credentialCache = new CredentialCache();
        credentialCache.Add(
        new Uri("https://www.RESTWEBSERVICESSITE.com"),
        "Basic",
        new NetworkCredential("USERID", "PWD"));


        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Uri);
        request.AllowAutoRedirect = true;
        request.PreAuthenticate = true;
        request.Credentials = credentialCache;
        request.AutomaticDecompression = DecompressionMethods.GZip;

        try
        {
            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {

                XmlReader responseReader = XmlReader.Create(response.GetResponseStream());

                //XmlDocument doc = new XmlDocument();

                **XDocument docs = XDocument.Load();**

               // responseReader.Read();
                //XDocument docs = XDocument.Load(response.GetResponseStream());


          List<string> books = docs.Descendants("INTEL")
          // Not really necessary, but makes it simpler
        .Select(x => new {
           Title = (string) x.Element("TITLE"),
           Author = x.Element("INTEL_AUTH")
           })
      .Select(x => new {
           Title = x.Title,
           FirstName = (string) x.Author.Element("FNAME"),
           MiddleInitial = (string) x.Author.Element("MNAME"),
           LastName = (string) x.Author.Element("LNAME"),
        })
   .Select(x => string.Format("{0}: {1} {2} {3}",
                           x.Title,
                           x.FirstName, x.MiddleInitial, x.LastName))
   .ToList();

   for (int i = 0; i < books.Count; i++)
   {
    for (int j = 0; j < books.Count; j++)
    {
    Response.Write("--" + books[i] + "---" + books[j]);
    }
   }

}

        }
        catch (Exception ex)
        {
            Response.Write("Remote server Returned an Error.");
        }
    }

I am unable to load xdocument.Load with the XML feed.

It's not clear exactly what you want, but I suspect it's something like this:

XDocument doc = ...; // However you want to load this.
// Note: XML is case-sensitive, which is one reason your code failed before
List<string> books = doc
    .Descendants("Intel")
    // Not really necessary, but makes it simpler
    .Select(x => new {
               Title = (string) x.Element("Title"),
               Author = x.Element("Intel_auth")
            })
    .Select(x => new {
               Title = x.Title,
               FirstName = (string) x.Author.Element("fname"),
               MiddleInitial = (string) x.Author.Element("mname"),
               LastName = (string) x.Author.Element("lname"),
            });
    .Select(x => string.Format("{0}: {1} {2} {3}",
                               x.Title,
                               x.FirstName, x.MiddleInitial, x.LastName))
    .ToList();

This will give you a List<string> where each element is something like "Test 1: John M. pp".

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM