使用嵌套表将数据集写入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:
再次重申,这些表之间已经存在父/子关系。我的程序的目的是自动生成包含表示这些表的数据的有用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的主要内容,如果未能解决你的问题,请参考以下文章
将 XSLT 转换的 XML 片段写入 XMLStreamWriter