私はCSVデータに基づいてXMLファイルを書き込むために以下のXML出力機を使用しています。XML出力機が余分なアスキー文字を追加します
public override void Output(IRow input, IUnstructuredWriter output)
{
IColumn badColumn = input.Schema.FirstOrDefault(col => col.Type != typeof(string));
if (badColumn != null)
{
throw new ArgumentException(string.Format("Column '{0}' must be of type 'string', not '{1}'", badColumn.Name, badColumn.Type.Name));
}
using (var writer = XmlWriter.Create(output.BaseStream, this.fragmentSettings))
{
writer.WriteStartElement(this.rowPath);
foreach (IColumn col in input.Schema)
{
var value = input.Get<string>(col.Name);
if (value != null)
{
// Skip null values in order to distinguish them from empty strings
writer.WriteElementString(this.columnPaths[col.Name] ?? col.Name, value);
}
}
}
}
それは本当に正常に動作し、ジョブがプレビューに、しかし、エラーなしで完全に終了し、ファイルのダウンロードに読まれているxmlファイルの破損を引き起こし、他の余分な文字があります。私はフラグメントレベルとAutoを適合レベルとして試しました。得られ
私のサンプル出力は
とファイルの読み取り中に2つのタグの間に余分な文字が問題を引き起こしています。
あなたは、データの先頭にこの文字があることを除外するために、(コードの最後の行に)書き出している間に値を調べましたか?私はあなたのプロセスでエンコーディングが変更されたと思われるかもしれませんが、通常は最初または特定の文字のために表示されます。 – montewhizdoh
私はADLAでジョブを実行しているため、文字の比較を確認してチェックすることができない場合があります。あなたはエラーの詳細を知ることができる方法を知っていますか? PS。 Azureのデータ湖 –
の新機能は、コードの最後の行にブレークポイントを置くことはできませんか?多分このようなものが必要でしょうか? https://blogs.msdn.microsoft.com/webdev/2013/11/04/remote-debugging-a-window-azure-web-site-with-visual-studio-2013/ – montewhizdoh