XmlDocument を作成し、今度はそれを配列に変換します。これをどのように行うことができますか?
ありがとう、
以下を試してください:
using System.Text;
using System.Xml;
XmlDocument dom = GetDocument()
byte[] bytes = Encoding.Default.GetBytes(dom.OuterXml);
ドキュメントのテキストエンコーディングを保持する場合は、Default
エンコーディングを目的のエンコーディングに変更するか、 Jon Skeetの提案 に従ってください。
それを MemoryStream
に書き込んでから、ストリームで ToArray
を呼び出します。
_using System;
using System.IO;
using System.Text;
using System.Xml;
class Test
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("root");
XmlElement element = doc.CreateElement("child");
root.AppendChild(element);
doc.AppendChild(root);
MemoryStream ms = new MemoryStream();
doc.Save(ms);
byte[] bytes = ms.ToArray();
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
}
_
書式設定をさらに制御するには、ストリームからXmlWriter
を作成し、XmlDocument.WriteTo(writer)
を使用できます。
スティーブグイディ :ありがとう!あなたのコードは正しかった!特殊文字の問題を解決した方法は次のとおりです。
public static byte[] ConvertToBytes(XmlDocument doc)
{
Encoding encoding = Encoding.UTF8;
byte[] docAsBytes = encoding.GetBytes(doc.OuterXml);
return docAsBytes;
}