为什么我没有获得 XML 值
Why am I not Getting the XML Values
我有一个 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;
我没有得到元素的值。例如 FullName 的值应该是 "Tommy SOP_NBR61553"。但是我看到这个字符串值
<PersonGivenName>TOMMY</PersonGivenName> id="SOP_NBR61553"
我哪里做错了
如果这是使用 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");
试试 (.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;
我有一个 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;
我没有得到元素的值。例如 FullName 的值应该是 "Tommy SOP_NBR61553"。但是我看到这个字符串值
<PersonGivenName>TOMMY</PersonGivenName> id="SOP_NBR61553"
我哪里做错了
如果这是使用 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");
试试 (.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;