Parsen von xml zurückgegeben, die von web-service-Antwort
Ich habe gelesen, dass viele Fragen auf, SO über dieses Thema, aber ich kann scheinen im Zusammenhang zu dem, was ich zu tun versuche. Grundsätzlich bin ich Aufruf eines web service zu geben Informationen über ein Fahrzeug-Identifizierungsnummer (VIN). Es gibt einen xml-stream, der wie folgt aussieht:
<VINquery Version="1.0.0" Date="5/25/2003">
<VIN Number="1HGES15501Lxxxxxx" Status="SUCCESS">
<Vehicle VINquery_Vehicle_ID="23261" Model_Year="2001" Make="Honda" Model="Civic" Trim_Level="LX Sedan">
<Item Key="VINquery Vehicle ID" Value="23261" Unit=""/>
<Item Key="Model Year" Value="2001" Unit=""/>
<Item Key="Make" Value="Honda" Unit=""/>
<Item Key="Model" Value="Civic" Unit=""/>
<Item Key="Trim Level" Value="LX Sedan" Unit=""/>
<Item Key="Manufactured in" Value="UNITED STATES" Unit=""/>
<Item Key="Production Seq. Number" Value="xxxxxx" Unit=""/>
<Item Key="Body Style" Value="SEDAN 4-DR" Unit=""/>
<Item Key="Engine Type" Value="1.7L L4 SOHC 16V" Unit=""/>
<Item Key="Transmission-short" Value="5M OD" Unit=""/>
<Item Key="Transmission-long" Value="5-Speed Manual Overdrive" Unit=""/>
<Item Key="Driveline" Value="FWD" Unit=""/>
<Item Key="Tank" Value="13.20" Unit="gallon"/>
<Item Key="Fuel Economy-city" Value="30 - 32" Unit="miles/gallon"/>
<Item Key="Fuel Economy-highway" Value="38 - 39" Unit="miles/gallon"/>
<Item Key="Anti-Brake System" Value="Non-ABS" Unit=""/>
<Item Key="Steering Type" Value="R&P" Unit=""/>
<Item Key="Standard Seating" Value="5" Unit=""/>
<Item Key="Optional Seating" Value="No data" Unit=""/>
<Item Key="Length" Value="174.60" Unit="in."/>
<Item Key="Width" Value="67.50" Unit="in."/>
<Item Key="Height" Value="56.70" Unit="in."/>
</Vehicle>
</VIN>
</VINquery>
Möchte ich, dass die Daten und analysieren Sie für jedes Schlüssel/Wert.
Dies ist mein code, den ich verwende, der die xml-Daten:
private string baseURL = "http://ws.vinquery.com/restxml.aspx?accessCode=xxxxxx&vin=xxxxxxxxx";
private string reportType = "&reportType=2";
public XmlDocument ExplodeVIN(string strVIN)
{
DataTable dt = new DataTable();
string url = baseURL + strVIN + reportType;
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
XmlDocument xmlDoc = new XmlDocument();
using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)
{
xmlDoc.Load(resp.GetResponseStream());
}
return xmlDoc;
}
Nachdem ich die xmlDoc ich bin nicht sicher, was als Nächstes zu tun ist.
Vielen Dank für Ihre freundliche Hilfe.
InformationsquelleAutor Ryan | 2013-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie das analysieren von xml zu
Dictionary<string, string>
mit Linq to Xml:Verwendung:
Oder
soll das service-response-string. Wenn Sie haben die response-stream, dann verwenden Sie
XDocument.Load(stream)
stattDies scheint zu funktionieren schließen...var items = xdoc.Nachkommen("Item").ToDictionary(ich => (string)ich.Elements("Key"), i => (string)ich.Element("Wert")); die Ergebnisse in ein argument null Ausnahme, und ich bin nicht sicher, warum
sorry, mein Fehler. Schlüssel und Wert sind nur Attribute, keine Elemente. Ich habe die Feste code. Auch Sie haben nicht entgangen kaufmännisches und-Zeichen in deine xml für
Steering Type
- Taste. Kaufmännische und sollte maskiert werden als&
Genial. Danke. Ich kann sehen, wie es jetzt funktioniert.
InformationsquelleAutor Sergey Berezovskiy
Yep ,pass-Element
InformationsquelleAutor Rahul
Gibt es eine andere Möglichkeit, die ich in der Regel verwenden Sie zum Umgang mit xml.
Schritt 1: Kopieren Sie Ihre xml-string und fügen Sie als Klassen.
Wenn Sie es einfügen, wird dieser code automatisch generiert werden:
Schritt 2:
Deserialisieren von xml-string zu dieser generierten Klasse.
Jetzt können Sie leicht manipulieren und filtern Sie das Ergebnis.
P. S.: Sie haben zu entfernen, Sonderzeichen (&) in Ihrer xml-string, denn es führt zu einem problem, wenn Sie versuchen, fügen Sie es als Klassen.
InformationsquelleAutor GorkemHalulu