已更新 - 我試圖用C#將很多文本文件(最多3K文件)轉換爲XML文件。 我想遵循兩個步驟: 1)使用特定的分隔符「:」獲取一些數據。 2)使用* .txt文件的相同名稱在另一個文件夾中創建* .xml文件。轉換XML文件中的許多文本文件,保持相同的文件名C#
我花了很多時間從文本文件中使用LINQ獲取數據信息,並且所有數據都是正確的。我被困在如何發送這些數據到XML文件並保存。
這是我第一次使用文本文件和XML,任何幫助將非常感激。
下面的代碼:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using System.Xml.Serialization;
namespace TxT2XML
{
class Program
{
private static void Main(string[] args)
{
string path = @"C:\Users\wcks\Documents\Visual Studio 2015\Projects\TxT2XML\Data_TXT_Files\";
string[] fileEntries = Directory.GetFiles(path);
Dictionary<string, string[]> dicData = new Dictionary<string, string[]>();
foreach (string fileName in fileEntries)
{
if (!File.Exists(path))
{
string[] contents = new string[100];
string fieldDateLogged = "Date Logged:";
string fieldTaskName = "Task Name:";
string fieldUserID = "User ID:";
var lines = File.ReadAllLines(fileName);
contents[0] = lines.Where(x => x.Contains(fieldDateLogged)).FirstOrDefault().Replace(fieldDateLogged, string.Empty).Trim();
contents[1] = lines.Where(x => x.Contains(fieldTaskName)).FirstOrDefault().Replace(fieldTaskName, string.Empty).Trim();
contents[2] = lines.Where(x => x.Contains(fieldUserID)).FirstOrDefault().Replace(fieldUserID, string.Empty).Trim();
XElement xElem = new XElement(fieldTaskName, dicData.Select(x => new XElement("DataLogName", new XAttribute(fieldTaskName, x.Key), new XAttribute(contents[0], x.Value))));
var xml = xElem.ToString();
Console.Write(xml);
}
}
}
}
}
class DataLogName
{
[XmlAttribute]
public string DataLogged { set; get; }
[XmlAttribute]
public string TaskName { set; get; }
[XmlAttribute]
public string UserID { set; get; }
}
預期的XML輸出:
<DataLogName>
<DataLogged>01-01-2017<DataLogged>
<TaskName>Project Name<TaskName>
<UserID>123456<UserID>
<DataLogName>
文本文件樣本:
SOFTWARE DATA LOG Data Log
Date Logged: 09-29-2014 02:17:45 PM
Task Name: PROJECT_NAME
User ID: Administrator Mode
System: COMPUTER_XPTO
Machine ID: XXXXXXXX
Device: XXXXXXXXXXXXXX
Data Source: c:\ROOT\FOLDER\X.BIN
Sumcheck: 5DC95067
Process: XXXXXXX/XXXXX/XXXXX/XXXXXX
非常感謝!
所有的文本文件都是相同的格式/模式?以及你想從文本文件構建XML的結構是什麼?文本文件內容和期望的XML輸出示例會有所幫助? –
@Venkatesh Muniyandi - 主線程已更新。 –