我正在使用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#应用程序中获取数据集?
下面的代码使用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)
| 归档时间: |
|
| 查看次数: |
2726 次 |
| 最近记录: |