lese-Wert von Knoten, die ein bestimmtes Attribut mit Xdocument
Ich versuche zu schreiben, eine Liste von 'Dokumenten' aus einer XML-Zeichenfolge, aber ich Frage mich, was ist der beste Weg, um den Wert von einem Knoten mit bestimmten Attributen.
Insbesondere in dem Beispiel möchte ich den Wert des aDocument.Quelle zum text "Die Quelle" von "Feld" Knoten, bei dem der "Quelle" mit dem Wert für das "name" - Attribut.
Beispiel-XML:
<doc>
<docitem>3</docitem>
<docid>129793</docid>
<doctitle>Some Title</doctitle>
<docdate>2009-07-03</docdate>
<metadata>
<field name="Date">2009-07-03 14:45:00</field>
<field name="SourceArea">The Source Area</field>
<field name="Source">The Source</field>
<field name="Organisation">Some Organisation</field>
</metadata>
<summary>
<summarytext>Some Summary</summarytext>
</summary>
</doc>
Beispielcode
protected override List<Document> GetDocuments(string xmlString)
{
//Parse the string
XDocument xDocument = XDocument.Parse(xmlString);
//Create a List of Document objects, from the doc xml element.
List<Document> documents = (from doc in xDocument.Descendants("doc")
select new Document
{
DocId = Convert.ToInt32(doc.Element("docid").Value),
DocTitle = doc.Element("doctitle").Value,
DocDateTime = DateTime.Parse(doc.Element("docdate").Value),
DocSummary = doc.Element("summary").Value,
DocBody = "",
DocUrl = doc.Element("docid").Value,
Source = "" //CODE NEEDED
}
).ToList<Document>();
return documents;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie XPath verwenden können, um XmlDocument
Oder besser, Sie können Linq to xml, XPath und