//批量处理节点结构不一样的XML,获取最终节点的并集,建立模型,进行入库操作。
private void button1_Click(object sender, EventArgs e)
{
FileList = GetAllFiles(new System.IO.DirectoryInfo(@"C:\Users\PC_YUE\Desktop\测试XML"));
for (int i = 0; i < FileList.Count; i++)
{
//使用XmlDocument读取XML
XmlDocument xdoc = new XmlDocument();
//相对路径
xdoc.Load(@FileList[i].FilePath);
//第一个节点
XmlNode xnode = xdoc.DocumentElement.FirstChild;
XmlNode root = xdoc.DocumentElement;
XmlNamespaceManager nsp = new XmlNamespaceManager(xdoc.NameTable);
nsp.AddNamespace("xocs", "http://www.elsevier.com/xml/xocs/dtd");
XmlNodeList a = root.SelectNodes("child::xocs:meta", nsp);
XmlNodeList xnlist = a[0].ChildNodes;
foreach (XmlNode el in xnlist)
{
nodeList.Add(el.Name);
}
i++;
}
var list = nodeList.Distinct<string>().ToList();
for (int j = 0; j < list.Count; j++)
{
ListViewItem lvi = new ListViewItem(j.ToString());
lvi.SubItems.Add(list[j]);
listView1.Items.Add(lvi);
}
}
/// <summary>
/// 定义Xml模型-文件所在路径和文件名
/// </summary>
public class FileInformation
{
public string FileName { get; set; }
public string FilePath { get; set; }
}
static List<FileInformation> FileList = new List<FileInformation>();
public static List<FileInformation> GetAllFiles(DirectoryInfo dir)
{
FileInfo[] allFile = dir.GetFiles();
foreach (FileInfo fi in allFile)
{
FileList.Add(new FileInformation { FileName = fi.Name, FilePath = fi.FullName });
}
DirectoryInfo[] allDir = dir.GetDirectories();
foreach (DirectoryInfo d in allDir)
{
GetAllFiles(d);
}
return FileList;
}
List<string> nodeList = new List<string>();
![]()