以下に非常にハードコーディングされた XML リーダーがあります。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
using System.Diagnostics;
namespace XML
{
class Program
{
static void Main(string[] args)
{
// XML text reader stuff
XmlTextReader textReader = new XmlTextReader("H:\\User\\Desktop\\secLendingXML.cfm.xml");
//string[] Fed_Array = new string[] {"Actual Available to Borrow", "Outstanding Loans",
//"Par Submitted", "Par Accepted", "WTD Average Rate"};
int j = 0;
// Trace listener stuff.
Stream myFile = File.Create("H:\\User\\Desktop\\Fed_Sec_Lending.txt");
TextWriterTraceListener myTextListener = new TextWriterTraceListener(myFile);
Trace.Listeners.Add(myTextListener);
while (textReader.Read())
{
switch (textReader.NodeType)
{
case XmlNodeType.Element:
for (int i = 0; i < textReader.AttributeCount; i++)
{
textReader.MoveToAttribute(i);
switch (textReader.Name)
{
case "securityMaturityDate":
Trace.Write(textReader.Value + ",");
Console.Write(textReader.Value + ",");
break;
case "couponRate":
Trace.Write(textReader.Value + ",");
Console.Write(textReader.Value + ",");
break;
case "securityType":
Trace.Write(textReader.Value + ",");
Console.Write(textReader.Value + ",");
j = 0;
break;
case "value":
Trace.Write(textReader.Value + ",");
Console.Write(textReader.Value + ",");
j = j + 1;
if (j > 4)
{
Trace.Write(Environment.NewLine);
Console.Write(Environment.NewLine);
}
break;
}
}
break;
}
}
}
}
}
私のデスクトップからこのXML ページを読み取ることは、ほとんどの場合うまく機能しているようです。ただし、トレース ライターは、コンソール出力と同じデータを書き込んでいないようです。ここにコンソール出力のスナップショットがあり、Trace が書き込んでいるテキスト ファイルの下部がここにあります。ご覧のとおり、最後の数行が一致していません。
何らかの理由で、テキスト ファイルは、コンソールと同じ出力を受け取っているはずですが、受け取っていません。ここでテキスト ファイルが短く切り捨てられている理由を誰かが理解できる理由はありますか?