其他分享
首页 > 其他分享> > 我如何使用LINQ-to-XML将以下XML加载到字典中?

我如何使用LINQ-to-XML将以下XML加载到字典中?

作者:互联网

如何加载以下格式的XML文档:

<Settings>
    <MimeTypes>
        <MimeType Type="application/mac-binhex40" Extensions=".hqx"/>
        <MimeType Type="application/msword" Extensions=".doc;.docx"/>
        <MimeType Type="application/pdf" Extensions=".pdf"/>
        <MimeType Type="application/vnd.ms-excel" Extensions=".xla;.xlc;.xlm;.xls;.xlt;.xlw;.xlsx"/>
    </MimeTypes> 
</Settings>

进入字典,其中键是单个扩展名,值是mimetype.

因此,对于这一行:

<MimeType Type="application/vnd.ms-excel" Extensions=".xla;.xlc;.xlm;.xls;.xlt;.xlw;.xlsx"/>

我将拥有以下键值条目:

关键字:“.xla”值:“ application / vnd.ms-excel”
关键字:“.xlc”值:“ application / vnd.ms-excel”
关键字:“.xlm”值:“ application / vnd.ms-excel”
密钥:“.xls”值:“ application / vnd.ms-excel”
关键字:“.xlt”值:“ application / vnd.ms-excel”

我对LINQ-To-XML业务比较陌生.

我知道我应该像这样将文档加载到XElement中:

 XElement settingsDoc = XElement.Load("Settings.xml");

但是,如何选择所有“ MimeType”条目?

解决方法:

就像是:

 var dictionary = (from element in settingsDoc.Descendants("MimeType")
                   from extension in element.Attribute("Extensions")
                                         .Value.Split(';')
                   select new { Type = element.Attribute("Type").Value,
                                Extension = extension })
                   .ToDictionary(x => x.Extension,
                                 x => x.Type);

标签:linq-to-xml,linq,xml,c,net
来源: https://codeday.me/bug/20191024/1919319.html