Hallo, bin am lernen, Learning by duing... habe ein Adressbuch zusammengebastelt, funktioniert gut.
Als Erweiterung wollte ich den Webservice von einem Schweizer online-Telefonbuch nutzen:http://tel.search.ch
Infos zum Webservice:http://tel.search.ch/api/help
mein Code sieht bis jetzt wie folgt aus:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
namespace testsearch
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btAnzeigen_Click(object sender, EventArgs e)
{
string url = @"http://tel.search.ch/api/?was=" + tbName.Text + "+" + tbVorname.Text + "&wo=" + tbOrt.Text + "&key=51c82d1c2142eaf532b32dde974ecd72";
System.Net.WebClient c = new WebClient();
byte[] response = c.DownloadData(url);
string test = Encoding.ASCII.GetString(response);
lbAnzeige.Text = (test);
}
}
}
Ich bekomme dann folgendes zurückgeliefert:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<feed xml:lang="de" xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:tel="http://tel.search.ch/api/spec/result/1.0/">
<id>http://tel.search.ch/api/51c82d1c2142eaf532b32dde974ecd72/a7ea559a5774546c217dd22c7e6009b0</id>
<title type="text">tel.search.ch API Search Results</title>
<generator version="1.0" uri="http://tel.search.ch">tel.search.ch</generator>
<updated>2011-01-31T03:00:00Z</updated>
<link href="http://tel.search.ch/result.html?was=emil+odermatt&wo=6373" rel="alternate" type="text/html" />
<link href="http://tel.search.ch/api/?was=emil+odermatt&wo=6373&key=51c82d1c2142eaf532b32dde974ecd72" type="application/atom+xml" rel="self" />
<openSearch:totalResults>1</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>10</openSearch:itemsPerPage>
<openSearch:Query role="request" searchTerms="emil odermatt" startPage="1" />
<openSearch:Image height="1" width="1" type="image/gif">http://www.search.ch/audit/CP/tel/de/api</openSearch:Image>
<entry>
<id>urn:uuid:38bf25e6c3cea7c2</id>
<updated>2011-01-31T03:00:00Z</updated>
<published>2011-01-31T03:00:00Z</published>
<title type="text">Odermatt, Emil</title>
<content type="text">Odermatt, Emil
Metzger
Schulhausstr. 3
6373 Ennetb?rgen/NW
041 620 59 38</content>
<author>
<name>tel.search.ch</name>
</author>
<link href="http://tel.search.ch/ennetbuergen/schulhausstr-3/emil-odermatt" title="Details" rel="alternate" type="text/html" />
<link href="http://tel.search.ch/vcard/Odermatt.vcf?key=38bf25e6c3cea7c2" type="text/x-vcard" title="VCard Download" rel="alternate" />
<link href="http://tel.search.ch/edit/?id=38bf25e6c3cea7c2" rel="edit" type="text/html" />
<tel:pos>1</tel:pos>
<tel:id>38bf25e6c3cea7c2</tel:id>
<tel:type>Person</tel:type>
<tel:name>Odermatt</tel:name>
<tel:firstname>Emil</tel:firstname>
<tel:occupation>Metzger</tel:occupation>
<tel:street>Schulhausstr.</tel:street>
<tel:streetno>3</tel:streetno>
<tel:zip>6373</tel:zip>
<tel:city>Ennetb?rgen</tel:city>
<tel:canton>NW</tel:canton>
<tel:phone>+41416205938</tel:phone>
</entry>
</feed>
Nun zu meiner Frage:
Wie geht es am einfachsten, um z.B das Element <tel:phone>+41416205938</tel:phone> heraus zu picken, und einer Variabel zuzuweisen?
Danke im Voraus
Klaus
Wenn du immer nur eine Telefonnr. hast wäre Regex wohl der einfachste Weg. Ansonsten bietet sich für sowas XPath (MSDN Beispiel) an.
Hallo Swissflame,
du hast mehrere Möglichkeiten. Ich würde an deiner Stelle LINQ verwenden. Hier findest du ein Beispiel: Read XML with Namespace resolution using XLinq.XElement.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.