首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用XML将B1数据表转换为System.Data.Datatble

如何使用XML将B1数据表转换为System.Data.Datatble
EN

Stack Overflow用户
提问于 2018-12-20 05:55:31
回答 1查看 2.3K关注 0票数 1

我正在尝试使用B1将System.Data.Datatable转换为System.Data.Datatable。

我试着用逐行的方式手动转换它,但是由于数据非常大,这需要花费太多的时间。

然后,我尝试使用SAP的DataTable.SerializeAsXML方法从中获取,使用SAP的方法获取B1 datatable,然后使用dt.ReadXml方法加载XML,但这是错误的。

我在另一个论坛上读到,、SAP、B1、Datatable、和的XML是不同的,需要使用XSLT进行转换。

请您提供任何方法和工具,以便我可以生成XSLT文件,以便将SAP B1 Datatable XML转换为System.Data.Datatable XML。

等待你的答复。

EN

回答 1

Stack Overflow用户

发布于 2019-04-29 07:31:51

我已经创建了一个方法,它将接受SAP (作为DataTable )并将其写入System.Data.DataTable

我不记得它是否给出了正确的数据类型,或者是否一切都是以字符串的形式出现的。

这是要旨

代码语言:javascript
运行
复制
public DataTable SapDataTableToDotNetDataTable(string pathToXmlFile)
{
  var DT = new DataTable();

  var XMLstream = new System.IO.FileStream(pathToXmlFile, FileMode.Open);

  var XDoc = System.Xml.Linq.XDocument.Load(XMLstream);

  var Columns = XDoc.Element("DataTable").Element("Columns").Elements("Column");

  foreach (var Column in Columns)
  {
    DT.Columns.Add(Column.Attribute("Uid").Value);
  }

  var Rows = XDoc.Element("DataTable").Element("Rows").Elements("Row");

  var Names = new List<string>();
  foreach (var Row in Rows)
  {
    var DTRow = DT.NewRow();

    var Cells = Row.Element("Cells").Elements("Cell");
    foreach (var Cell in Cells)
    {
      var ColName = Cell.Element("ColumnUid").Value;
      var ColValue = Cell.Element("Value").Value;
      DTRow[ColName] = ColValue;
    }

    DT.Rows.Add(DTRow);
  }

  return DT;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53863118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档