嘿,我有两个xml文件和以下代码:
DataTable table = new DataTable();
List<string> headingNames = new List<string>();
List<string> valueNames = new List<string>();
//first xml file
XDocument config = XDocument.Load(configFile);
Dictionary<string, string> dict = config.Descendants("Columns").FirstOrDefault().Elements()
.GroupBy(x => (string)x.Attribute("XPath"), y => (string)y.Attribute("Name"))
.ToDictionary(x => x.Key, y => y.FirstOrDefault());
//second xml file
XDocument data = XDocument.Load(dataFile);
List<XElement> positions = data.Descendants("Position").ToList();
但是我必须将其更改为XMLDocument代码。
这里是第一个XML:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<Columns BaseXPath="//Orders/Position/">
<Colum XPath="@PositionSK" Name="Position"/>
<Colum XPath="@PosGroup" Name="Gruppen-Nr"/>
<Colum XPath="@PosNumber" Name="PositionsNr"/>
<Colum XPath="@PositionCommercialTypeSK" Name="Status"/>
<Colum XPath="@BundlePositionSK" Name="BundlePositionSK"/>
<Colum XPath="@MainPositionSK" Name="MainPositionSK"/>
<Colum XPath="@SalesAgentPrice" Name="Preis"/>
<Colum XPath="@Catchword" Name="Suchwort"/>
<Colum XPath="@ContentComponentCommSK" Name="IKO"/>
<Colum XPath="@PositionTypeSK" Name="PositionsTyp"/>
<Colum XPath="//Advertisement[@AdvertisementSK = PositionAdvertisementRelationship/@AdvertisementSK]/@AdvertisementSK" Name="AdvertisementSK"/>
<Colum XPath="//Advertisement[@AdvertisementSK = PositionAdvertisementRelationship/@AdvertisementSK]/@AdvertisementTypeSK" Name="Formatvorgabe"/>
</Columns>
</ROOT>
我想要所有带有@和“名称”的名称:Position,Gruppen-Nr,...
因此,在Dic中(根据我的代码)站立着{[@@ PositionSK,位置]},{[@ PosGroup,Gruppen-Nr]},...
那么,如何用XMLDocument达到相同的结果呢?
输出将是DataGridView处的DataTable。它应该在另一个xml文件中用@搜索名称,然后找到它们的值。但是需要使用XMLDocument ..而不是linq ..的代码有人可以帮助我吗?
相关分类