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;

        }
Schreibe einen Kommentar