バイト配列として取得したXMLを持っていますが、XML文字列を取得する最良の方法は何ですか?私はxmltextreaderとmemorystreamを使用しようとしましたが、成功しませんでした。
XmlDocument doc = new XmlDocument();
string xml = Encoding.UTF8.GetString(buffer);
doc.LoadXml(xml);
OR
XmlDocument doc = new XmlDocument();
MemoryStream ms = new MemoryStream(buffer);
doc.Load(ms);
これは、データがXMLで通常のUTF8エンコーディングを持っていることを前提としています。また、buffer
はバイト配列です。
Xmlがデフォルトの「UTF8」エンコーディングであると仮定すると、次のようなことができます。
string xml = System.Text.UTF8Encoding.UTF8.GetString(bytes);
System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument().LoadXml(xml);
またはこれ;
XmlDocument doc = new XmlDocument();
using (MemoryStream ms = new MemoryStream(buffer))
{
doc.Load(ms);
}
エンコーディングに基づいて、次のことができます
string xmlString = System.Text.UTF8Encoding.UTF8.GetString(bytes);
そして、文字列を使用します
XmlTextReader reader = new XmlTextReader(new StringReader(xmlString));
System.Text.Encoding.UTF8 クラスを見てください。バイト配列をUTF8文字列に変換できます。