Я хочу выбрать элементы XML следующим образом.Пожалуйста, знайте, что Data и Party являются классами.Может кто-нибудь помочь, как добиться следующего:
выбрать новые данные
{
Party.Name = xElem.Element ("Имя"). Значение,
Party.PostBox = xElem.Element ("PostBox"). Значение,
}
При текущем коде я не могу получить доступ к свойствам Party.
static void Main(string[] args)
{
XDocument doc = XDocument.Load(@"c:\test.xml");
var q = from xElem in doc.Descendants("Party")
where (int)xElem.Attribute("ID") == 1
select new Data
{
};
}
public class Data
{
public Party Party { get; set; }
public Data()
{
this.Party = new Party();
}
}
public class Party
{
string name;
string postbox;
public string Name
{
get { return name; }
set { this.name = value; }
}
public string PostBox
{
get { return postbox; }
set { this.postbox = value; }
}
}
@Джон Скит: Ниже приведен пример кода.Я получаю сообщение об ошибке «Ссылка на объект не установлена для экземпляра объекта» только во время выполнения.
static void Main(string[] args)
{
XDocument doc = XDocument.Load(@"c:\test\data.xml");
var props = from xElem in doc.Descendants("Party")
where (int)xElem.Attribute("ID") == 1
select new Data
{
Party =
{
Name = xElem.Element("Name").Value.ToString(),
PostBox = xElem.Element("PostBox").Value.ToString(),
Tax =
{
CompanyID = xElem.Element("Tax").Element("CompanyID").Value.ToString()
}
}
}
}
public class Data
{
public Party Party { get; set; }
public Data()
{
this.Party= new Party();
}
}
public class Party
{
string name;
string postbox;
public Tax Tax { get; set; }
public string Name
{
get { return name; }
set { this.name = value; }
}
public string PostBox
{
get { return postbox; }
set { this.postbox = value; }
}
}
public class Tax
{
string companyid;
public string CompanyID
{
get { return companyid; }
set { this.companyid = value; }
}
}
@ Джон Скит: Ниже приведен пример кода.Я получаю сообщение об ошибке «Ссылка на объект не установлена для экземпляра объекта» только во время выполнения.
static void Main(string[] args)
{
XDocument doc = XDocument.Load(@"c:\test\data.xml");
var props = from xElem in doc.Descendants("Party")
where (int)xElem.Attribute("ID") == 1
select new Data
{
Party =
{
Name = xElem.Element("Name").Value.ToString(),
PostBox = xElem.Element("PostBox").Value.ToString(),
Tax =
{
CompanyID = xElem.Element("Tax").Element("CompanyID").Value.ToString()
}
}
}
}
public class Data
{
public Party Party { get; set; }
public Data()
{
this.Party= new Party();
}
}
public class Party
{
string name;
string postbox;
public Tax Tax { get; set; }
public string Name
{
get { return name; }
set { this.name = value; }
}
public string PostBox
{
get { return postbox; }
set { this.postbox = value; }
}
}
public class Tax
{
string companyid;
public string CompanyID
{
get { return companyid; }
set { this.companyid = value; }
}
}