如何从基于XSD的C#对象中删除命名空间?

时间:2018-02-21 09:30:29

标签: c# xml xsd xml-namespaces agresso

我有一个使用 xsd.exe Agresso's XSD创建的类,我成功使用它来生成我的XML文件。我定义了一个对象ABWInvoice oInvoiceAgresso = new ABWInvoice() { };,填充了相关数据,然后使用以下方法保存为XML文件。

public static void SaveXml<ObjectType>(ObjectType o, string fileName)
    {
        using (var sw = new StreamWriter(myDecodePath(fileName)))
        {
            new XmlSerializer(typeof(ObjectType)).Serialize(sw, o);
        }
    }

XML文件有很多名称空间,例如

<InvoiceDate xmlns="http://services.agresso.com/schema/ABWSchemaLib/2011/11/14">2018-02-05</InvoiceDate>

到目前为止一切顺利,但客户现在需要删除XML中的命名空间,即仅显示<InvoiceDate>2018-02-05</InvoiceDate>

网络上有很多例子如何使用XML文件,这意味着我必须继续将我的对象保存为XML文件,然后重新加载它以进行处理。

我想知道是否还有更好的方法,而且我认为更快的方法是直接在我的oInvoiceAgresso对象上进行,而不是先保存它,好吗?

我们使用VS 2017。

0 个答案:

没有答案