C#使用多参数筛选XML文件
我有如下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
<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>