Ich verwende einen Legacy-Service, der Fetch CRM verwaltet: crmService.Fetch(fetchXml)
.Schnelle Ersatzknotennamen in XML
ich XML-String Ergebnis wie folgt aus:
<resultset>
<result>
<new_categoria name="Cliente" formattedvalue="1">1</new_categoria>
<new_name>Admin</new_name>
<new_tipodecampanaid>{F8F29978-4E0F-AE92-FB43-48B4DC406B1F}</new_tipodecampanaid>
<statuscode name="Activo">0</statuscode>
</result>
<result>
<new_categoria name="Client" formattedvalue="1">1</new_categoria>
<new_name>Client</new_name>
<new_tipodecampanaid>{758341BA-4661-D694-6743-8D2DC875793E}</new_tipodecampanaid>
<statuscode name="Activo">0</statuscode>
</result>
<result>
</resultset>
Wir müssen (weil alias nicht für Fetch Methode unterstützen) ersetzen mehrere Knotennamen:
1 - Ersetzen Sie new_categoria Knotenname von org_category
2 - Ersetzen new_name Knotennamen org_name
3 - Ersetzen new_tipodecampanaid Knotennamen org_campaignid
Wir brauchen hohe peformance, vielleicht können die Ergebnisse sehr groß sein.
Mit XmlDocument
:
var doc = new XmlDocument();
doc.LoadXml(fetchXMLResult);
XmlNode root = doc.SelectSingleNode("resultset");
foreach (XmlNode childNode in root.ChildNodes)
{
}
XDocument
Verwendung:
XDocument resultset = XDocument.Parse(fetchXMLResult);
if (resultset.Root == null || !resultset.Root.Elements("result").Any())
{
return;
}
resultset.Root.Elements("result")
Irgendwelche Vorschläge?
Verwenden Sie Folgendes: string xml = ""; StringReader sReader = new StringReader (xml); XmlReader reader = XmlReader.Create (sReader); – jdweng
Vielleicht Kommentarcode in Antwort enthalten. Anzeigen http://stackoverflow.com/questions/4518544/xmlreader-from-a-string-content * Remember: XmlReader und StringReader implementieren IDisposable. * – Kiquenet