Wie kann ich Lesen Sie die spezifischen Elemente von XML-Zeichenfolge mithilfe der XMLREADER-in C#
Ich habe eine XML-Zeichenfolge:
<GroupBy Collapse=\"TRUE\" GroupLimit=\"30\">
<FieldRef Name=\"Department\" />
</GroupBy>
<OrderBy>
<FieldRef Name=\"Width\" />
</OrderBy>
Ich bin neu in C#. Ich habe versucht, den Namen zu Lesen-Attribut des FieldRef-element für die beiden Elemente, aber ich konnte nicht. Ich XMLElement verwendet , gibt es eine Möglichkeit zu wählen, die diese zwei Werte?
- Welchen code haben Sie versucht?
- Was ist der rest der XML? Gültige XML-Datei müssen ein root-Knoten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Trotz der Entsendung von ungültigen XML-Code (keine root-Knoten), eine einfache Möglichkeit zum Durchlaufen der <FieldRef - > - Elementen ist die Verwendung der
XmlReader.ReadToFollowing
Methode:Natürlich ein flexibler und fließend-Schnittstelle zur Verfügung, die von LINQ to XML, vielleicht wäre es einfacher zu verwenden, wenn verfügbar, innerhalb der .NET framework, auf das Sie abzielen? Der code wird dann:
IEnumerable<KeyValuePair<XElement, string>> pairings = doc.Root.Descendants("FieldRef").Select(e => new KeyValuePair<XElement, string>(e.Parent, e.Attribute("Name").Value));
XDocument doc = XDocument.Parse({xml});
statische Methode, die dokumentiert ist auf MSDNusing System.Linq;
. Das sollte das Problem behebenforeach(KeyValuePair<XElement, string> pair in pairings){ string nameAttr = pair.Value;}
versuchen Sie dies: