生成XML文件的二进制内容

时间:2011-04-26 14:07:16

标签: c#

我在SQL Server 2008中名为contents的表中有一个名为File的列。content列的数据类型为varbinary(MAX)。我有一个XML文件,我需要使用c#.net 3.5生成二进制内容。

文件的名称是Test.XML,我需要在名为Test.txt的文件中生成其内容。然后我可以编写更新脚本来设置其内容。

1 个答案:

答案 0 :(得分:1)

打开文件,转换为字节数组,然后将字节数组粘贴到db中的varbinary字段中:

string xml = File.ReadAllText("text.xml");
byte[] bytes = Encoding.ASCII.GetBytes(xml);

// put bytes into db

更新:

如果你真的希望它作为0和1的字符串表示 - 在我看来毫无意义,你只需要遍历字节数组并将每个字节转换为基数2二进制并将所述值添加到字符串构建器对象像这样:

string xml = File.ReadAllText("text.xml");
byte[] bytes = Encoding.ASCII.GetBytes(xml);
StringBuilder sb = new StringBuilder();

foreach (byte b in bytes)
{
    sb.Append(Convert.ToString(b, 2));
}

File.WriteAllText("test2.txt", sb.ToString());

我不希望任何人因为这个看似愚蠢的答案而投票让我失望 - 看下面的评论,这就是他所说的。

更新:

要将字节数组转换为十六进制,请执行以下操作:

string xml = File.ReadAllText("text.xml");
byte[] bytes = Encoding.ASCII.GetBytes(xml);
StringBuilder sb = new StringBuilder();

foreach (byte b in bytes)
{
      sb.AppendFormat("{0:x2}", b);
}

File.WriteAllText("test2.txt", sb.ToString());