XML查询问题

本文关键字:问题 查询 XML | 更新日期: 2023-09-27 18:15:00

我正试图从我的c#编码的xml文件中获得一些数据。

如果以下claim-ib-info节点不包含撤回的节点,如何获取claim节点的数据?

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

我对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>

XML查询问题

尝试学习和使用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);
}

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

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