继承其名称空间的嵌套表不能在不同的名称空间中具有多个父表

bat*_*ech 0 c# xml

我正在使用dataset.readxml从xml填充数据集,如下所示。

ds.ReadXml("C:\\Data\\mytestdesigndata.xml");    
Run Code Online (Sandbox Code Playgroud)

但是我得到一个异常,它说:

继承其名称空间的嵌套表“ BRANCH”不能在不同的名称空间中具有多个父表

xml数据如下

<ASchema>
  <A:Data DBREF="=24140/157" xmlns:A="http://www.test.com/xml/a">
   <B:BRANCH DBREF="=24140/158">
  </B:BRANCH>
  </A:Data>
  <A:TEST DBREF="=24174/138" xmlns:A="http://www.test.com/xml/a">
   <B:BRANCH DBREF="=24174/139" >
   </B:BRANCH>
  </A:TEST>
</ASchema>
Run Code Online (Sandbox Code Playgroud)

我了解此问题与同时B:BRANCH映射到A:Data和有关A:TEST

我无法控制数据。如何解决该问题并仍然在我的C#应用​​程序中获取数据集?

jdw*_*eng 6

下面的代码使用Regex从XML删除所有名称空间。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.IO;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            string input = File.ReadAllText(FILENAME);
            string pattern = @"(</?)(\w+:)";

            string output = Regex.Replace(input, pattern, "$1");

            StringReader reader = new StringReader(output);
            DataSet ds = new DataSet();
            ds.ReadXml(reader);
        }
    }
}
?
Run Code Online (Sandbox Code Playgroud)