本文介绍了通过访问LINQ的到XML元素嵌套的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个XML文件,它看起来像这样

 <&MyObject的GT;
    < someinfo1 />
    < someinfo2>< / someinfo2>
    < someinfo3 />
    。
    。
    <项目>
        <&领域GT;
            < usefulinfo1>&东西LT; / usefulinfo1>
            < usefulinfo2>&东西LT; / usefulinfo2>
            < usefulinfo3>
                &所述;组>
                    < code>有的code< / code>
                    <描述>有的描述< /描述>
                < /组>
            < / usefulinfo3>
        < /田>
    < /项目>
    <项目>
        <&领域GT;
            < usefulinfo1>&东西LT; / usefulinfo1>
            < usefulinfo2>&东西LT; / usefulinfo2>
            < usefulinfo3>
                <名someattribute =>
                    <&初始化GT; someinit< / INIT>
                    <&姓GT;有的姓< /姓>
                < /名称>
                <名someattribute =>
                    <&初始化GT; someinit< / INIT>
                    <&姓GT;有的姓< /姓>
                < /名称>
                <公司someattribute =>
                    < coname> coname< / coname>
                    <国家>公司与国内LT; /国家>
                < /公司>
                <公司someattribute =>
                    < coname> coname< / coname>
                    <国家>公司与国内LT; /国家>
                < /公司>            < / usefulinfo3>
        < /田>
    < /项目>
    。
    。
    (更多标签命名项)< /为MyObject>

我曾尝试通过LINQ的XML来访问这些数据。
这就是我的实验是如此远...

 的XmlReader读卡器= XmlReader.Create(新StringReader(XMLTEXT));
        reader.Read();
        XDOC的XDocument = XDocument.Load(读卡器);
        reader.Close();
       IEnumerable的<&MyObject的GT;在xdoc.Root.Elements从我的数据=(项目)。后代(田)
        选择新为MyObject
        {
            usefulinfo1 =(字符串)i.Element(usefulinfo1),
            usefulinfo2 =(字符串)i.Element(usefulinfo2),
            usefulinfo3 =新的List< Usefulinfo3>(
                                                从i.Elements(usefulinfo3)usefulinfo3。后代()
                                                选择新Usefulinfo3
                                                    {
                                                        NAME =新的List< Usefulinfo3Name>(
                                                            从usefulinfo3.Elements名称(名称)。后代()
                                                            选择新Usefulinfo3Name
                                                            {
                                                                的init =(字符串)name.Element(INIT),
                                                                姓=(字符串)name.Element(姓)
                                                            }
                                                        )
                                                        公司= //使用公司类似的事情
                                                    }
                                                )
        };

那么,问题是,我还没有得到看正在加载的结果,即使我只是尝试搜索usefulinfo1和
    usefulinfo2而已,所以帮助下,我想就从这里开始,第二,因为我不知道如果我的方法将工作,我想
    知道是否有调试它,因为当我踏进数据调试时,它只是通过直线距离的一种方法,不显示
    我什么。
    如果你可以给我联系,我可以搜索这一点,那将是非常有用的,因为网站我发现至今只有秀
    我怎么去,直到item元素(我知道这部分应该是简单,但我只是还没有得到它的权利)。
    提高我的code方法的任何建议也欢迎。
    非常感谢你。


解决方案

这个例子对我的作品

  XDOC的XDocument = XDocument.Parse(XML);
VAR的结果= xDoc.Descendants(田)
    。选择(F =>新建
    {
        usefulinfo1 = f.Element(usefulinfo1)。价值,
        usefulinfo2 = f.Element(usefulinfo2)。价值,
        usefulinfo3 = f.Element(usefulinfo3)。元素(名称)
                        。选择(N =>
                            新{
                                姓= n.Element(姓)。价值,
                            })
                        .ToArray()    })
    .ToArray();

var names = xDoc.Descendants("surname")
    .GroupBy(x => x.Value)
    .Select(x => new { Name = x.Key, Count = x.Count() })
    .ToList();

这篇关于通过访问LINQ的到XML元素嵌套的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-29 02:06