【问题标题】:LINQ to XML queryLINQ to XML 查询
【发布时间】:2010-05-10 09:54:15
【问题描述】:

Here 我有非常相似的 xml 结构,但现在我有了这个:

<Fields>
    <Company>My Company</Company>
    <Address2>Villa at beach</Address2>
    <Email2>email2@mail.com</Email2>
    <Mobile>333-888</Mobile>
    <ContactMethod>Facebook</ContactMethod>
    ...etc...
</Fields>

现在我需要与给定链接上相同的输出: 公司:我的公司
地址2:海滩别墅
邮箱2:email2@mail.com

它的查询是什么?

谢谢,
伊莱

【问题讨论】:

    标签: linq-to-xml


    【解决方案1】:

    假设您希望将结果作为字典,您可以这样做:

            string xml =
    @"<Fields>  
      <Company>My Company</Company>  
      <Address2>Villa at beach</Address2>  
      <Email2>email2@mail.com</Email2>  
      <Mobile>333-888</Mobile>  
      <ContactMethod>Facebook</ContactMethod>  
    </Fields>";
    
            XDocument doc = XDocument.Parse(xml);
            XElement fields = doc.Root;
    
            Dictionary<string, string> result = fields.Elements().ToDictionary(e => e.Name.LocalName, e => e.Value);
    
            foreach (var i in result)
            {
                Console.WriteLine(i.Key + ": " + i.Value);
            }
    

    【讨论】:

    • 嗨,谢谢你的回答,但这不是我要找的。您对字段名称进行了硬编码,但我需要它来动态确定字段名称和值。
    • 所以真正的问题是:您希望结果是动态生成的类型(具有属性的真实 CLR 类型)还是某种数据结构,例如 Dictionary?两者都是可能的,但我不鼓励您使用真正的 CLR 类型,因为访问这些属性需要使用反射,这不是很容易而且很慢。那么它是哪一个?
    • 字典解决方案是我需要的。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多