XML查询问题

时间:2011-11-17 02:51:16

标签: c# xml

我正在尝试从我的C#编码中获取xml文件中的一些数据。

如果以下 claim-ib-info 节点不包含 撤消<,如何获取声明节点的数据< / strong>节点。

如果你不清楚我的问题,请告诉我。

我对XML知之甚少,并提前感谢。

<info>
    <claim kind="national" sequence="1">
        <country>UK</country>
        <number>66</number>
        <date>20080602</date>
    </claim>
    <claim-ib-info>
        <received-at>
            <date>20090610</date>
        </received-at>
    </claim-ib-info>


    <claim kind="national" sequence="2">
        <country>US</country>
        <number>125</number>
        <date>20080501</date>
    </claim>
    <claim-ib-info>
        <withdrawn>
            <date>20100721</date>
        </withdrawn>
    </claim-ib-info>


    <claim kind="national" sequence="3">
        <country>TH</country>
        <number>61</number>
        <date>20090316</date>
    </claim>
    <claim-ib-info>
        <received-at>
            <date>20090610</date>
        </received-at>
    </claim-ib-info>


    <claim kind="national" sequence="4">
        <country>MY</country>
        <number>66</number>
        <date>20090209</date>
    </claim>
    <claim-ib-info>
        <withdrawn>
            <date>20101221</date>
        </withdrawn>
    </claim-ib-info>
</info>

2 个答案:

答案 0 :(得分:3)

尝试学习并使用Linq to XML.

var list = from ele in XDocument.Load(@"c:\files.xml").Descendants("claim-ib-info")
                    where ele.Element("withdrawn")!=null
                   select ele.PreviousNode  ;

foreach (var t in list)
{
    Console.WriteLine(t);
}

答案 1 :(得分:1)

我建议先学习XPath。 XPath(与LINQ不同)是一种开放技术;您可以在任何平台上使用它,使用任何支持XML的语言和库:

http://msdn.microsoft.com/en-us/library/d271ytdx.aspx