我有看起来像的 XML
<?xml version="1.0"?>
<configuration>
<TemplateMapper>
<Template XML="Product.xml" XSLT="sheet.xslt" Keyword="Product" />
<Template XML="Cart.xml" XSLT="Cartsheet.xslt" Keyword="Cart" />
</TemplateMapper>
</configuration>
当我将属性关键字的值作为“产品”传递时,我希望 LINQ 将 XML 和 XSLT 属性的值作为字符串和字符串的字典返回给我。
到目前为止,我已经尝试过:
var Template="Product"
var dictionary = (from el in xmlElement.Descendants("TemplateMapper")
let xElement = el.Element("Template")
where xElement != null && xElement.Attribute("Keyword").Value == Template
select new
{
XML = el.Attribute("XML").Value,
XSLT= el.Attribute("XSLT").Value
}).ToDictionary(pair => pair.XML, pair => pair.XSLT);
KeyValuePair<string, string> templateValues = dictionary.FirstOrDefault();
它给出了一个错误“对象引用未设置为对象的实例”。谁能发现我做错了什么?帮助真的很感激。