In Zukunft werde ich 200.000 xml-Dateien lesen und aus jeder Datei einige Informationen erfassen. Ich muss einen Weg finden, so schnell wie möglich zu erhalten ...Gibt es eine effizientere Methode zum Lesen von XML-Feldern mit LINQ?
Meine XML:
<note>
<fields>
<name>john</name>
<lastname>doe</lastname>
</fields>
<info>
<chNFe>VALUE</chNFe>
</info>
</note>
I chNFe
Knotens Wert
string xml = File.ReadAllText(@"C:\myxml.xml");
Regex.Replace(xml, @"[^\u0000-\u007F]", string.Empty);
var doc = XDocument.Parse(xml);
var matchingElements = doc.Descendants().Where(x => x.Name.LocalName == "chNFe");
string chave = matchingElements.First().Value;
Console.WriteLine("Chave: " + chave);
Gibt es eine effizientere erhalten möchten Methode zum Lesen von XML-Feldern mit LINQ?
Um, Ihre XML-Beispiel nicht enthalten 'chNFe', ist es schwer zu sehen, zu machen, wie es ist relevant. (Es ist auch länger als nützlich - bitte schneiden Sie alles auf einen [mcve].) Kennen Sie den Namensraum, in dem das Element sein wird? Wenn dies der Fall ist, können Sie die Verwendung von 'Descendants (XName)' verwenden, indem Sie 'XName' aus einem' XNamespace' und einer 'Zeichenkette' konstruieren. –
Der Knoten 'chNFe' existiert nicht in Ihrer Beispiel-XML. Ist das der richtige Knoten, nach dem Sie suchen? –
Sie suchen auch nach Ausführungszeit-Effizienz? Sauberer Code? Geringer Platzbedarf? Ist es besonders ineffizient, wie es ist? Wenn ja, wie messen Sie das? –