我正在开发asp.net移动应用程序。我正在使用LINQ to XML来查询XML文件。我使用以下查询来检索名称&动态查询的值如下
var TotalManifolds = from MF in FieldRoot.Element("FIELD-DEFINITION").Element("MANIFOLDS").Elements("MANIFOLD")
join SLT in FieldRoot.Element("FIELD-DEFINITION").Element("SLOTS").Elements("SLOT")
on (string)MF.Attribute("MID") equals (string)SLT.Attribute("PARENT")
select new
{
SlotName = (string)SLT.Attribute("NAME").Value,
SlotValue = (string)SLT.Attribute("NAME").Value
};
在上面的查询语句中,我想动态检索属性的名称而不显式指定属性的名称
SlotName = (string)SLT.Attribute("NAME").Value
这里我明确指定了名称。我想编码哪些可以动态检索属性的名称。我是Linq to xml的新手。你能告诉我这是如何以编程方式完成的吗?或者您能否提供我可以解决上述问题的链接?
答案 0 :(得分:0)
如果我理解正确,您可以随时将变量传递给LINQ查询:
var string attrName = "NAME"; // specify whatever value you need ...
// wrap the query below in a function, if it will be reused...
var TotalManifolds = from MF in FieldRoot.Element("FIELD-DEFINITION").Element("MANIFOLDS").Elements("MANIFOLD")
join SLT in FieldRoot.Element("FIELD-DEFINITION").Element("SLOTS").Elements("SLOT")
on (string)MF.Attribute("MID") equals (string)SLT.Attribute("PARENT")
select new
{
SlotName = (string)SLT.Attribute(attrName).Value,
SlotValue = (string)SLT.Attribute(attrName).Value
};
答案 1 :(得分:0)
看来你正在寻找类似的东西:
// ...
select new
{
SlotName = SLT.Attributes().First().Name,
SlotValue = SLT.Attributes().First().Value
};