Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#] parsing webClient data - Windows Phone

Pagina: 1
Acties:

  • Stefanovic45
  • Registratie: Juni 2008
  • Laatst online: 22-11 14:52
Ik ben me een beetje aan het verdiepen in het ontwikkelen van apps voor Windows Phone. Omdat C# relatief eenvoudig zou moeten zijn leek het me goed om daar mee te beginnen. Ik heb daarnaast ook wel wat ervaring met PHP en een klein beetje met Java, voldoende ondergrond om te beginnen leek mij zo.

Mijn doel is om data van een website te halen, dit op te slaan in een database en weer te laten zien in mijn eigen app. Voor ophalen van de data van de website gebruik ik webClient, dat werkt op zich prima. Ik krijg netjes de hele string te zien in mijn app. Hiervoor gebruik ik deze code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public partial class MainPage : PhoneApplicationPage
    {
        private WebClient webClient;
        // Constructor
        public MainPage()
        {
            InitializeComponent();
            webClient = new WebClient();
            webClient.DownloadStringCompleted += webClient_DownloadStringCompleted;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            tbk1.Text = String.Empty;
            webClient.DownloadStringAsync(new Uri(tbx1.Text));
        }

        private void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                tbk1.Text = e.Result;

            }
            else
                tbk1.Text = e.Error.ToString();
        }
}


Nu heb ik dus de data in XML formaat, maar nu de volgende stap. Ik wil natuurlijk ook iets met deze data. Ik kom er alleen niet zo goed achter wat ik hiervoor kan of moet gebruiken. Ik kom meestal uit bij xDocument, maar dan kom ik weer niet verder dan deze regel:

var feedXml = XDocument.Parse(e.Result);

Veel verder kom ik dus niet... Is er iemand die mij in de goede richting kan drukken? Ik kan over dit specifiek onderdeel ook weinig vinden op de msdn pagina's van Microsoft waar behoorlijk veel voorbeeld code op staat. Voor het opslaan van data in een database en het bouwen van een eenvoudige app uiteraard wel :)

Verder lijkt het mij belangrijk om te weten hoe de XML is opgebouwd die van de website wordt getrokken. Hoe kan ik deze eenvoudig downloaden naar mijn gewone PC zodat ik hem met een fatsoenlijke texteditor in kan zien?

Tesla Model Y RWD / 8.4 kWp PV installatie / WPB / lucht/lucht WP


  • HMS
  • Registratie: Januari 2004
  • Laatst online: 17-11 00:33

HMS

Voor het doorzoeken van een XML document zou je LINQ to XML kunnen gebruiken: MSDN: Process XML Data Using LINQ to XML. Daarnaast zijn er nog de MSDN: XmlReader Class (System.Xml) (SAX parser) en de XDocument (DOM parser) die je al gevonden had.

Hoe nu verder? Tja, dat ligt eraan wat je wil doen met je XML. Van XML -> objecten zodat je ze kan laten zien lijkt met het meest waarschijnlijke, maar met deze classes zou je dat prima kunnen doen (http://stackoverflow.com/...deserialize-xml-to-object).

Het downloaden van de XML data zou je kunnen doen door het vanuit de debugger te kopieren, cURL te gebruiken, Fiddler ertussen gooien, etc.

  • Stefanovic45
  • Registratie: Juni 2008
  • Laatst online: 22-11 14:52
Edit: Laat nog maar even :)

[ Voor 98% gewijzigd door Stefanovic45 op 13-12-2013 10:46 ]

Tesla Model Y RWD / 8.4 kWp PV installatie / WPB / lucht/lucht WP


  • Cornholio
  • Registratie: Augustus 2009
  • Laatst online: 30-09 13:19
Je kunt het xml bestand eerst opslaan, of de url direct openen met bijv. Notepad++
Gewoon Bestand -> openen -> bij bestandsnaam de hele url plakken en op Openen drukken. Dan opent het XML bestand zich in Notepad++.

Voor het parsen kun je inderdaad het best Linq gebruiken. Je krijgt dan zoiets:
code:
1
2
3
4
5
6
7
                XDocument xml = XDocument.Load(new StringReader(e.Result));
                var products = xml.Elements("producten");

                foreach (var product in products)
                {
                    string naam = product.Element("productName").Value;                    
                }


Succes!