C#使用多参数筛选XML文件

C#使用多参数筛选XML文件,c#,xml,filter,C#,Xml,Filter,我有如下XML文件: <ROOT> <UNIT_VISIT> <ID>1</ID> <NAME>Dewi Anggraini</NAME> <SEX>F</SEX> <DOB>03/11/1986</DOB> <ADDRESS>Kuningan City, Jakarta</ADDRESS> <I

我有如下XML文件:

<ROOT>
  <UNIT_VISIT>
    <ID>1</ID>
    <NAME>Dewi Anggraini</NAME>
    <SEX>F</SEX>
    <DOB>03/11/1986</DOB>
    <ADDRESS>Kuningan City, Jakarta</ADDRESS>
    <ID_UNIT>001</ID_UNIT>
    <VISIT_DATE>03/11/2013</VISIT_DATE>
  </UNIT_VISIT>
  <UNIT_VISIT>
    <ID>2</ID>
    <NAME>Dewi Anggraini</NAME>
    <SEX>F</SEX>
    <DOB>03/11/1986</DOB>
    <ADDRESS>Kuningan City, Jakarta</ADDRESS>
    <ID_UNIT>001</ID_UNIT>
    <VISIT_DATE>05/11/2013</VISIT_DATE>
  </UNIT_VISIT>
</ROOT>

1.
德维安格拉尼
F
03/11/1986
雅加达库宁安市
001
03/11/2013
2.
德维安格拉尼
F
03/11/1986
雅加达库宁安市
001
05/11/2013
我想在一定条件下使用C#读取并过滤xml


例如,我需要查看Name='Dewi Anggraini'和ID\u UNIT='001'的位置,并访问\u DATE='05/11/2013'

这应该是您需要的。记住,尽管你应该在提问时发布你尝试过的代码

    private void search ()
    {

        XmlDocument doc = new XmlDocument();
        doc.Load("xml path");
        XmlNode node = doc.SelectSingleNode("/Root");
        string name = "Dewi Anggraini";
        string id = "001";
        foreach (XmlNode nodes in node.SelectNodes("UNIT_VISIT"))
        {
            if (nodes != null && nodes["NAME"].InnerText == name && nodes["ID_UNIT"].InnerText == id)
            {
                // do stuff here
            }
        }
    }
这就行了

测试用例:

void Main()
{
    String myXML = "<ROOT><UNIT_VISIT><ID>1</ID><NAME>Jack Johnson</NAME><SEX>F</SEX><DOB>03/11/1986</DOB><ADDRESS>Kuningan City, Jakarta</ADDRESS><ID_UNIT>001</ID_UNIT><VISIT_DATE>03/11/2013</VISIT_DATE></UNIT_VISIT><UNIT_VISIT><ID>2</ID><NAME>Dewi Anggraini</NAME><SEX>F</SEX><DOB>03/11/1986</DOB><ADDRESS>Kuningan City, Jakarta</ADDRESS><ID_UNIT>001</ID_UNIT><VISIT_DATE>05/11/2013</VISIT_DATE></UNIT_VISIT></ROOT>";
    var doc = XDocument.Parse(myXML);

    var elements = doc.Element("ROOT").Descendants("UNIT_VISIT").Where(x => x.Element("NAME").Value == "Dewi Anggraini").Where(x => x.Element("ID_UNIT").Value == "001");

    Console.WriteLine (elements);
}
void Main()
{
字符串myXML=“1Jack Johnson F03/11/1986雅加达州库宁安市2010103/11/20132Dewi AnggrainiF03/11/1986雅加达州库宁安市2013/11”;
var doc=XDocument.Parse(myXML);
var elements=doc.Element(“根”).subjections(“单位访问”)。其中(x=>x.Element(“名称”)。Value==“Dewi Anggraini”)。其中(x=>x.Element(“ID\u单位”)。Value==“001”);
Console.WriteLine(元素);
}
输出:

<UNIT_VISIT>
  <ID>2</ID>
  <NAME>Dewi Anggraini</NAME>
  <SEX>F</SEX>
  <DOB>03/11/1986</DOB>
  <ADDRESS>Kuningan City, Jakarta</ADDRESS>
  <ID_UNIT>001</ID_UNIT>
  <VISIT_DATE>05/11/2013</VISIT_DATE>
</UNIT_VISIT>

2.
德维安格拉尼
F
03/11/1986
雅加达库宁安市
001
05/11/2013

向我们展示您迄今为止尝试过的代码?“为我编写代码”不是问题。谢谢,您的回答很有帮助。
<UNIT_VISIT>
  <ID>2</ID>
  <NAME>Dewi Anggraini</NAME>
  <SEX>F</SEX>
  <DOB>03/11/1986</DOB>
  <ADDRESS>Kuningan City, Jakarta</ADDRESS>
  <ID_UNIT>001</ID_UNIT>
  <VISIT_DATE>05/11/2013</VISIT_DATE>
</UNIT_VISIT>