【问题标题】:How to create a XML FIle and upload to azure blob in C#如何在 C# 中创建 XML 文件并上传到 azure blob
【发布时间】:2021-10-29 02:04:06
【问题描述】:

我使用 C# XDocument 库创建了 XML 数据。我尝试将 XML 数据上传到 azure blob。 下面是我的代码。

 using Microsoft.WindowsAzure.Storage;
 using Microsoft.WindowsAzure.Storage.Blob;
 using System.Xml.Linq;
 public CloudBlobClient blobClient {get;}

public AzureBlobServices(string storageAccountConnection)
{
 StorageAccountConnection = storageAccountConnection;
 storageAccount = CloudStorageAccount.Parse(StorageAccountConnection);
 blobClient = storageAccount.CreateCloudBlobClient();
}

     public async Task sampleFile()
     {
      XDocument doc = new XDocument( new XElement( "body", 
                                    new XElement( "level1", 
                                    new XElement( "level2", "text" ), 
                                    new XElement( "level2", "other text" ) ) ) );
            MemoryStream stream = new MemoryStream();
            doc.Save(stream);
            var container = blobClient.GetContainerReference("folder location");
            CloudBlockBlob blockBlob = container.GetBlockBlobReference("Data/xml/Data.csv");
            await blockBlob.UploadFromStreamAsync(stream);
}

但文件已上传,但文件中没有任何内容。代码有什么问题?

文件现在可用。根据 Mario Vernari 答案添加后
xmlStream.Position = 0;

【问题讨论】:

  • 除了使用 Excel 打开文本文件之外,该 XML 字符串有什么问题? XML 是文本。将文件内容作为文本发布并解释您真正想要的内容。您发布的内容正是您的代码生成的内容
  • Data/xml/Data.csv ? CSV 不是 XML。 CSV 只是一个平面文件,值之间有逗号,可选标题,没有其他结构,例如1,2,3.14,4.5
  • 当您双击扩展名为 csv 的文件时,Excel 将尝试像打开 CSV 文件一样打开该文件 - 字段以逗号分隔,行以换行符分隔。在这种情况下,没有逗号,只有换行符,因此 Excel 将文件加载为单列文本。

标签: c# .net-core


【解决方案1】:

尝试重置流的位置:

MemoryStream stream = new MemoryStream();
doc.Save(stream);
stream.Position = 0;

【讨论】:

  • 文件中的内容现在可用。但不是以正确的格式分隔。附件是有问题的屏幕截图。
  • @junealex “格式不正确”是什么意思?你期待什么?该屏幕截图正是您的代码生成的。您是否尝试创建 Excel 文件?你不能这样做
  • @Panagiotis Kanavos 在我下载文件并尝试在 MS EXCEL 应用程序中打开但它在屏幕截图中显示为它之后
  • 当初为什么要使用 Excel 打开 XML 文件?你想产生什么? \
  • 我正在尝试创建一个 CSV 文件
猜你喜欢
  • 2021-01-30
  • 2020-01-03
  • 2020-11-02
  • 2018-05-09
  • 2019-06-27
  • 2014-01-23
  • 2017-03-14
  • 2016-11-11
  • 1970-01-01
相关资源
最近更新 更多