Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化<;表>;将节点从XML加倍[]_C#_.net_Multidimensional Array_Deserialization_Xml Namespaces - Fatal编程技术网

C# 反序列化<;表>;将节点从XML加倍[]

C# 反序列化<;表>;将节点从XML加倍[],c#,.net,multidimensional-array,deserialization,xml-namespaces,C#,.net,Multidimensional Array,Deserialization,Xml Namespaces,我有一个包含矩阵值的XML文件(来自某处),我希望将其作为双[][]对象放入代码中。XML包含表节点,这些节点看起来像标准的序列化双[][]对象: <table type="System.Double[][]"><table type="System.Double[]"><el type="System.Double">0.005</el><el type="System.Double">0.001</el><el t

我有一个包含矩阵值的XML文件(来自某处),我希望将其作为双[][]对象放入代码中。XML包含表节点,这些节点看起来像标准的序列化双[][]对象:

<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序列化程序将此Xml反序列化为
double[][]

double[][]
Xml序列化的格式如下:


1.
2.

您可以尝试使用LinqToXml手动解析这些Xml或将其转换为相应的格式。

您不能使用标准Xml序列化程序将此Xml反序列化为
double[][]

double[][]
Xml序列化的格式如下:


1.
2.

您可以尝试使用LinqToXml手动解析这些Xml,或将其转换为相应的格式。

最好使用XDocument来解析它,如下所示:-

    var d = XDocument.Parse(testXml);
    var r = d.Element("table");

    var listOfDoubleArrays = new List<double[]>();
    foreach (var outerArrayItem in r.Elements())
    {
        double[] arr = new double[r.Elements().Count()];
        int i = 0;
        foreach (var innerArrayItem in outerArrayItem.Elements())
        {
            arr[i] = System.Convert.ToDouble(innerArrayItem.Value);
            i++;
        }
        listOfDoubleArrays.Add(arr);
    }
    double[][] result = listOfDoubleArrays.ToArray();
var d=XDocument.Parse(testXml); var r=d.元素(“表”); var listOfDoubleArrays=新列表(); foreach(r.Elements()中的var outerArrayItem) { double[]arr=新的double[r.Elements().Count()]; int i=0; foreach(outerArrayItem.Elements()中的var innerrayItem) { arr[i]=System.Convert.ToDouble(innerArrayItem.Value); i++; } 添加(arr); } double[]result=listofDoubableArray.ToArray();
最好使用XDocument来解析它,如下所示:-

    var d = XDocument.Parse(testXml);
    var r = d.Element("table");

    var listOfDoubleArrays = new List<double[]>();
    foreach (var outerArrayItem in r.Elements())
    {
        double[] arr = new double[r.Elements().Count()];
        int i = 0;
        foreach (var innerArrayItem in outerArrayItem.Elements())
        {
            arr[i] = System.Convert.ToDouble(innerArrayItem.Value);
            i++;
        }
        listOfDoubleArrays.Add(arr);
    }
    double[][] result = listOfDoubleArrays.ToArray();
var d=XDocument.Parse(testXml); var r=d.元素(“表”); var listOfDoubleArrays=新列表(); foreach(r.Elements()中的var outerArrayItem) { double[]arr=新的double[r.Elements().Count()]; int i=0; foreach(outerArrayItem.Elements()中的var innerrayItem) { arr[i]=System.Convert.ToDouble(innerArrayItem.Value); i++; } 添加(arr); } double[]result=listofDoubableArray.ToArray();