使用嵌套表将数据集写入xml

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用嵌套表将数据集写入xml相关的知识,希望对你有一定的参考价值。

在我的代码中存在一个名为dsetDataManager的数据集类。我将在这个问题中引用两个表:DataConfigDataTable,SpecEquationDataTable。

DataConfig是父表,SpecEquation是子表。

这是我现有的代码:

    Dim dset As New dsetDataManager
    Dim dataconfig As New dsetDataManager.DataConfigDataTable
    dataconfig.AddDataConfigRow(name,
                      name,
                      precision,
                      "smartmethodname",
                      "stringevalstring",
                      True,
                      "passingstring",
                      "passingstringinclusion",
                      "0",
                      "datacolumntype",
                      True,
                      True,
                      "networkanalyzertraces",
                      "spectrumanalyzertraces",
                      "noisefiguretraces",
                      0.5,
                      "parser")
  dset.Tables.Add(dataconfig)

  Dim specequation As New dsetDataManager.SpecEquationDataTable
  specequation.AddSpecEquationRow(dataconfig.Rows(0),
                                      j + 1,
                                      k + 1,
                                      arr_minEquation(equationCounter),
                                      arr_maxEquation(equationCounter),
                                      "Inclusive",
                                      "Inclusive")
   dset.WriteXML("examplepath	est.xml")

这些方法和表都是自定义的,所以请假设这个代码有效并且正确创建。他们肯定是。我的问题:

当我写XML时,我提供了两个sperate表,一个带有开始标记的dataconfig表,然后是行,然后是结束标记。然后是带有开始标记的specequation表,行,然后是结束标记。

我真正想要的是xml中的嵌套表。我希望specequation表位于dataconfig表的结束标记内。有关如何做到这一点的任何提示?我认为.merge()方法可行,但我得到一个'对象引用未设置为对象的实例'异常。

现有的XML:

enter image description here

我想要什么:enter image description here

再次重申,这些表之间已经存在父/子关系。我的程序的目的是自动生成包含表示这些表的数据的有用xml文件。这种嵌套发生是绝对至关重要的。谢谢!

答案

您可以使用DataRelation在两个表之间添加关系。这需要添加一个字段来链接这两者

然后,您可以将DataRelation设置为Nested = True。例如

Dim rel As DataRelation = dSet.Relations.Add("relHeader", dSet.Tables("DataConfig").Columns("Link"), dSet.Tables("SpecEquation").Columns("Link"))
rel.Nested = True

最后隐藏列:

datatable.Columns("Link").ColumnMapping = MappingType.Hidden

以上是关于使用嵌套表将数据集写入xml的主要内容,如果未能解决你的问题,请参考以下文章

将sql数据库中的数据写入没有数据集的xml文件中

将 XSLT 转换的 XML 片段写入 XMLStreamWriter

如何将 Pandas 数据框写入 HDF5 数据集

使用 Java 将嵌套记录写入 BigQuery

将具有多个嵌套级别的任何 XML 读取到结构化表中以写入 Excel 的通用方法

存在嵌套片段时 setRetainInstance(true) 将不起作用