入力テキストファイルをとして配置しますc:\sample.txt
。次のような行が含まれています(区切り文字の数は変化する可能性があり、レコードごとに多かれ少なかれフィールドが発生します):
169055|759656025621|Dos|Justamente Tres|Kill Rock Stars|256|PUNK|CD-JEWEL CASE|06/24/1996|D
xx|xx|xx|xx|xx|xx|xx|xx|xx|xx
...
そして、あなたはこのように始めるかもしれません:
public static void Main() {
XElement root = new XElement("root");//create a root node
foreach (String ln in File.ReadAllLines(@"c:\sample.txt")){//<-- read lines
string[] fields = ln.Split('|'); //<-- change field separator here & split fields
XElement record = new XElement("record"); //create a child node (i.e., parent of filelds)
int pos = 0;
foreach (String sp in fields){
pos += 1;
XElement field = new XElement(string.Format("field_{0}", pos.ToString())); // prepare child nodes
field.Add(sp);
record.Add(field); // add to parent node
}
root.Add(record); // add to root
}
Console.Write (root.ToString()); // display the result on console
Console.ReadKey(); // waiting for you........
}
コンソールでの結果:
<root>
<record>
<field_1>169055</field_1>
<field_2>759656025621</field_2>
<field_3>Dos</field_3>
<field_4>Justamente Tres</field_4>
<field_5>Kill Rock Stars</field_5>
<field_6>256</field_6>
<field_7>PUNK</field_7>
<field_8>CD-JEWEL CASE</field_8>
<field_9>06/24/1996</field_9>
<field_10>D</field_10>
</record>
<record>
<field_1>xx</field_1>
<field_2>xx</field_2>
<field_3>xx</field_3>
<field_4>xx</field_4>
<field_5>xx</field_5>
<field_6>xx</field_6>
<field_7>xx</field_7>
<field_8>xx</field_8>
<field_9>xx</field_9>
<field_10>xx</field_10>
</record>
</root>
お役に立てれば。