C# Linq到XML在C中查询数据
XML 我可以查询诸如EmpID、Name、Salary等字段 但是如何查询地址字段,如街道、城市、州、邮政编码、国家C# Linq到XML在C中查询数据,c#,linq-to-xml,C#,Linq To Xml,XML 我可以查询诸如EmpID、Name、Salary等字段 但是如何查询地址字段,如街道、城市、州、邮政编码、国家 提前感谢。将XML放入变量并使用Like var Pro = from u in doc.Descendants("Employee") select u; foreach (var x in Pro) { Response.Write(string.Format("EMP ID: {0}, Emp Name: {1}",
提前感谢。将XML放入变量并使用Like
var Pro = from u in doc.Descendants("Employee") select u;
foreach (var x in Pro)
{
Response.Write(string.Format("EMP ID: {0}, Emp Name: {1}", x.Element("EmpId"), x.Element("Name")));
}
创建一个与XML中名称相同的列表,并为包含所有地址字段的地址创建子列表
使用与您使用的相同的查询,但从第一部分中选择
现在,您可以轻松地处理var FirstPart中的数据了,我也会按照Reniuz的建议去做,并将其反序列化到一个对象,但下面是一个示例,说明您目前是如何做的:
XDocument doc = XDocument.Parse(XMLVariableString);
var FirstPart = from node in doc.Descendants("items") select node; //Select Data from doc using
List<ListName> valuesNodes = new List<ListName>(); //create any with i.e <==
您试图查找的地址元素可以通过使用x.ElementsAddress首先选择所有地址元素来访问。然后可以使用.element函数选择每个嵌套的地址元素 因此Response.Write的参数应该如下所示:
foreach (var x in Pro)
{
Response.Write("EMP ID: {0}, Emp Name: {1}\r\n", x.Element("EmpId"), x.Element("Name"));
var adrs = x.Descendants("Address");
foreach (var a in adrs)
{
Response.Write("\tAddress Street: {0}, City: {1}\r\n", a.Element("Street"), a.Element("City"));
}
}
使用
是否要查询所有地址、特定地址?请更明确地说明您的需要。我建议您反序列化到您的对象。这样会更好更简单。如何在XML中反序列化对象?对不起,我说不出话来。非常感谢。为什么我们必须先使用?因为每个员工可以有几个地址。First接受First One解释。无法识别元素方法。它只有在x.后裔Saddress.First.ElementStreet时才被识别。为什么?谢谢。好办法。
foreach (var x in Pro)
{
Response.Write("EMP ID: {0}, Emp Name: {1}\r\n", x.Element("EmpId"), x.Element("Name"));
var adrs = x.Descendants("Address");
foreach (var a in adrs)
{
Response.Write("\tAddress Street: {0}, City: {1}\r\n", a.Element("Street"), a.Element("City"));
}
}
x.Elements("Address").Element("Street");
x.Descendants("Address").First().Element("Street")