【问题标题】:c# LINQ to XML - XDocumentc# LINQ to XML - XDocument
【发布时间】:2016-04-28 10:37:40
【问题描述】:

只是想在使用XDocument 类中阅读一个简单的 XML 文档。 该文档已阅读,但我正在努力将我的 OperationConfig 映射到 XML?

var xml = XDocument.Load(path);
var query = xml.Root.Elements("configaccount")
    .Select(o => new OperationConfig()
    {
        AccountName = o.Attribute("accountname").Value,
        Email = o.Attribute("email").Value
    });

XML:

<?xml version="1.0" encoding="UTF-8"?>
    <config>
        <configaccount>
            <accountname>
                BusinessName
            </accountname>
            <email>
                aa@domain.com
            </email>
        </configaccount>
    </Config>

不确定我在重新调整 null 时错过了什么?

【问题讨论】:

    标签: c# xml


    【解决方案1】:

    您需要从 xml 中按名称检索 Descendants 节点。 “帐户名”和“电子邮件”也不是属性,它是 XML 的元素。属性在元素内部。

    替换你的查询

     var query = xml.Descendants("configaccount")
            .Select(o => new OperationConfig
            {
                AccountName = o.Element("accountname").Value,
                Email = o.Element("email").Value
            });
    

    希望有帮助

    【讨论】:

    • 您可以考虑添加为什么此查询有效,以及为什么原始查询无效。我认为简单地复制和粘贴您的解决方案不会学到很多东西。
    • 感谢@CharlesMager,我已经改进了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    相关资源
    最近更新 更多