Hinzufügen XmlNode, XmlElement
Bekomme ich einen soap-Umschlag zurück von einem web-service mit Kunden-Daten wie name und Adresse etc. Die Adresse enthält keine Stadt/Vorort, aber PLZ. Ich habe die ganze Stadt und den Vororten mit Ihren post-codes in eine CSV-Datei, damit ich Sie einfügen möchten, um den richtigen Namen für die einzelnen post-code. Ich kann es speichern, in eine Datenbank oder etwas anderes, aber das ist mehr darüber, wie Sie den Knoten, bevor ich übergeben Sie die Daten auf.
Den code wie :
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(searchResponse);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xDoc.NameTable);
nsmgr.AddNamespace("ns", wsNamespace);
XmlNodeList postCodeNodes = xDoc.SelectNodes("//ns:postcode", nsmgr);
string applicationPath = AppDomain.CurrentDomain.BaseDirectory;
foreach (XmlNode node in postCodeNodes)
{
using (StreamReader readFile = new StreamReader(applicationPath + "postcodes.csv"))
{
string line;
string[] row;
while ((line = readFile.ReadLine()) != null)
{
row = line.Split(',');
if (row[0].ToString() == node.InnerText)
{
string suburb = row[1].ToString();
//XmlNode ndSuburb = xDoc.CreateElement("suburb");
//ndSuburb.Value = suburb;
//node.ParentNode.AppendChild(ndSuburb);
break;
}
}
}
}
und ich bin nicht sicher, was zu tun, wo habe ich auskommentiert den code. Irgendwelche Vorschläge? Tipps, wie Sie diese effizienter zu gestalten, würde auch geschätzt.
Vielen Dank im Voraus.
InformationsquelleAutor Roger | 2011-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, es ist ein bisschen schwer zu wissen, ohne tatsächlich sehen, wie die XML-Struktur, die vorhanden ist und die gewünschte neue XML-Struktur. Grundsätzlich würde ich davon ausgehen, dass Sie wollen, einen neuen XML-Knoten enthält, die Vorort auf dem gleichen Niveau wie die
postcode
element.In diesem Fall würde ich:
BEARBEITEN
Als für Effizienz: Warum nicht Sie Lesen Sie Ihre "Postleitzahl-Datei" nur einmal, das hinzufügen der Einträge zu einem dictionary, das den Beitrag enthält, den code als Schlüssel und die Vorstadt als einen Wert? Das ist viel schneller als das Lesen der Datei jedes mal.
Und später tun:
Hm. Versuchen Sie es mit "ns:suburb" als node-name - wählen Sie die
postcode
element mit derns:
Präfix.InformationsquelleAutor Thorsten Dittmar