2016-05-31 3 views
0

Ich habe eine XML, dieWarum bin ich die XML nicht bekommen Werte

<Registered id="SOP_NBR61553"> 
    <RoleOfPerson> 
     <PersonBirthDate> 
      <Date>1970-08-11</Date> 
     </PersonBirthDate> 
     <PersonName> 
      <PersonGivenName>TOMMY</PersonGivenName> 
      <PersonMiddleName/> 
      <PersonSurName>SMITH</PersonSurName> 
      <PersonNameSuffixText/> 
     </PersonName> 
     <PersonRaceCode>B</PersonRaceCode> 
     <PersonSexCode>M</PersonSexCode> 
    </RoleOfPerson> 
</Registered> 

so aussieht, als ich diesen Code ausführen

var id = custOrd.Element("Registered").Attribute("id"); 
var BirthDate = custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonBirthDate").Element("Date"); 
var First_Name = custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonName").Element("PersonGivenName"); 
var Middle_Name = custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonName").Element("PersonMiddleName"); 
var Last_Name = custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonName").Element("PersonSurName"); 
var Race = custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonRaceCode"); 
var Sex = custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonSexCode"); 
var FullName = First_Name +" "id; 

ich die Werte bin nicht für die Elemente bekommen. Zum Beispiel sollte der Wert von FullName "Tommy SOP_NBR61553" sein. Allerdings sehe ich diese Zeichenfolge Wert

Was mache ich falsch hier

+0

Ich bin kein Experte, aber wäre es nicht diese Linie sein? für mich sieht es so aus, als würdest du nur den Vornamen nennen? .. -> 'var FullName = Vorname +" "id;' Wäre es nicht so etwas wie 'var FullName = Vorname + Middle_Name + Nachname '" id; ' ? –

Antwort

1

Wenn das C# -Code mit LINQ to XML dann statt der Auswahl der Attribute oder Elementknoten, wie Sie zur Zeit stellen Sie sicher, Sie ist extrahieren der String-Wert, am besten mit z

var id = (string)custOrd.Element("Registered").Attribute("id"); 
var First_Name = (string)custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonName").Element("PersonGivenName"); 
+0

Vielen Dank @Martin Honnen, die das Problem gelöst haben – Perry

0

Try (.Value-Eigenschaft) wie:

var id = custOrd.Element("Registered").Attribute("id").Value; 

var First_Name = custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonName").Element("PersonGivenName").Value; 

var Middle_Name = custOrd.Element("Registered").Element("RoleOfPerson").Element("PersonName").Element("PersonMiddleName").Value; 

Auch eine geringfügige Änderung in letzter Zeile:

var FullName = First_Name +" "+ id; 
Verwandte Themen