2016-04-05 4 views
0

ich diese XML-Datei haben:Join zwei Kinder

<library> 
    <book ISBN="BSWE153" authors = "AC532" > 
     <title>Leraing XML</title> 
     <year>1995</year> 
     <publisher>W3C</publisher> 
    </book> 

    <author id="AC532"> 
     <firstName>Hamdy</firstName> 
     <middleName/> 
     <lastName>Taha</lastName> 
     <nationality>Egypatian</nationality> 
    </author> 
</library> 

Wie die Informationen eines Buches drucken (mit seinen Informationen Autoren), die durch ihre ISBN?

+4

In welcher Sprache? Was hast du bisher versucht? –

+0

... und was bedeutet * print * in Ihrem Kontext? – Filburt

+0

Was hast du probiert? In welcher Programmiersprache verwenden Sie dieses Problem? Python/Java/Xsl/.. – little

Antwort

0

Sie können dies zum Beispiel mit XDocument tun. Sie werden

  1. benötigen String Parse (oder die Datei laden)
  2. das Buch Autor Id
  3. Lese eingeben (oder IDs?)
  4. suchen Sie den Autor
  5. es schön formatiert werden alle zusammen - mit entsprechenden Kontrollen.

, dass nur eine Skizze ist:

const string xml = @"<?xml version=""1.0""?> 
<library> 
    <book ISBN=""BSWE153"" authors = ""AC532"" > 
     <title>Leraing XML</title> 
     <year>1995</year> 
     <publisher>W3C</publisher> 
    </book> 

    <author id=""AC532""> 
     <firstName>Hamdy</firstName> 
     <middleName/> 
     <lastName>Taha</lastName> 
     <nationality>Egypatian</nationality> 
    </author> 
</library> 
"; 

var doc = XDocument.Parse(xml); 

var book = doc.Root.Elements("book") 
      .FirstOrDefault(b => (string)b.Attribute("ISBN") == "BSWE153"); 
var authorId = book.Attribute("authors").Value.ToString(); 

var author = doc.Root.Elements("author") 
      .FirstOrDefault(b => (string)b.Attribute("id") == authorId); 

Console.WriteLine("{0} by {1} {2}",  
       book.Element("title").Value, 
       author.Element("firstName").Value, 
       author.Element("lastName").Value); 
+0

Vielen Dank –