マトリックス値を含む XML ファイル (どこかから) があり、これを double[][] オブジェクトとしてコードに取り込みたいと考えています。XML には、標準のシリアル化された double[][] オブジェクトのように見えるテーブル ノードが含まれています。
<table type="System.Double[][]"><table type="System.Double[]"><el type="System.Double">0.005</el><el type="System.Double">0.001</el><el type="System.Double">0.007</el><el type="System.Double">-0.012</el></table><table type="System.Double[]"><el type="System.Double">0.033</el><el type="System.Double">-0.146</el><el type="System.Double">-0.008</el><el type="System.Double">0.006</el></table><table type="System.Double[]"><el type="System.Double">-0.002</el><el type="System.Double">-0.004</el><el type="System.Double">-0.004</el><el type="System.Double">-0.003</el></table><table type="System.Double[]"><el type="System.Double">0</el><el type="System.Double">0</el><el type="System.Double">0</el><el type="System.Double">0</el></table></table>
XML 全体がこの形式であるわけではないため、これらのノードのみを XmlNode として抽出します (XElements には InnerXml がないため)。これを と呼びましょうmyMatrixXmlNode
。次に、それを MemoryStream に入れ、そこから逆シリアル化します。
var deserializer = new XmlSerializer(typeof(double[][]));
var myMatrix = (double[][])deserializer.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(myMatrixXmlNode.InnerXml)));
これは私に解決策をまだ見つけていないエラーをスローし<table xmlns=''> was not expected.
ます..そして私はこれに本当に悩まされています。