我正在尝试根据查询 xml 文件搜索或获取一个文件的 xml 元素。此查询 xml 文件定义将搜索哪些元素并检索其值。即使元素存在,下面的代码也没有找到 xml 文件中的所有元素:
任何人都可以告诉我如何改进我的代码,或者找出问题所在?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace ReadXMLRecursively
{
class Program
{
static void Main(string[] args)
{
doc.Load(@"C:\Requests.xml");
doc2.Load(@"C:XmlLists.xml");
XmlNodeList nList2 = doc2.SelectNodes("//Root/Element");
XmlNodeList nList = doc.SelectNodes("//Root/List");
foreach (XmlNode xmlNode in nList)
{
if (nList2 != null)
foreach (XmlNode n in nList2)
{
if (n.Attributes != null)
{
string val = n.Attributes.GetNamedItem("SourceCol").Value;
if (xmlNode[val] != null)
{
//if (n.Attributes != null) Console.WriteLine(n.Attributes.GetNamedItem("SourceCol").Value);
XmlElement xmlElement = xmlNode[val];
if (xmlElement != null) Console.WriteLine(xmlElement.Name);
}
else
{
Console.WriteLine(val + " not found");
}
}
}
Console.WriteLine("------------- end------------------");
}
}
}
XML 文件 1
<root>
<list>
<FirstName>Abc</FirstName>
<LastName>LT</LastName>
<Occupatoin>Eng</Occupation>
<BirthDate></BirthDate>
...
</list>
</root>
XML 文件 2
<root>
<Trainings>
<Java>Ab</Java>
<NET>b</NET>
<SQL>c</SQL>
<Powershell>d</Powershell>
...
</Trainings>
根据这个xml文件搜索上面的xml文件
<root>
<Element Name="Firstname />
<Element Name="Lastname" />
<Element Name="Occupation" />
<Element Name="Java" />
<Element Name="Net" />
...
</root>