クエリxmlファイルに基づいて1つのファイルの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>