为什么我没有得到的XML值

问题描述:

我有一个看起来像这样为什么我没有得到的XML值

<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> 

当我运行这段代码

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; 

我不是为元素获取值的XML。例如,FullName的值应该是“Tommy SOP_NBR61553”。但是我看到这个字符串值

我在做什么错在这里

+0

我不是专家,但是,岂不是这条线?对我来说,它看起来像你只叫第一个名字? - >'var FullName = First_Name +“”id;'它不会像'var FullName = First_Name + Middle_Name + Last_Name“”id;' ? – 2016-05-31 15:32:17

如果是使用LINQ to XML,然后而不是选择的属性或元素节点作为你现在一定要确保你解压到C#代码字符串值,最好用例如

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

谢谢@Martin Honnen解决了这个问题 – Perry

尝试(.Value属性),如:

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; 

此外,在最后一行一个微小的变化:

var FullName = First_Name +" "+ id;