【发布时间】:2018-11-16 14:22:43
【问题描述】:
这是 Xml
<ItemWarehouseInfo>
<row>
<MinimalStock>0.000000</MinimalStock>
<MaximalStock>0.000000</MaximalStock>
<MinimalOrder>0.000000</MinimalOrder>
<StandardAveragePrice>0.000000</StandardAveragePrice>
<Locked>tNO</Locked>
<WarehouseCode>Mc</WarehouseCode>
<DefaultBinEnforced>tNO</DefaultBinEnforced>
</row>
...other equal lines
</ItemWarehouseInfo>
我必须从除 WarehouseCode 节点之外的每个行节点中删除所有子节点 我尝试了这种方法,但显然我错了,没有任何改变:
XDocument xdoc = XmlHelper.LoadXDocFromString(xmlOITM);
XElement magaRow = xdoc.Root.Descendants(Constants.Articoli.ART_MAGA_NODES).FirstOrDefault();//ItemWarehouseInfo node
List<XElement> row = magaRow.Elements().ToList();//row node
foreach(XElement child in row.Elements())
{
if (child.Name != "WarehouseCode")
{
child.Remove();
}
}
这是我期望的最终结果:
<ItemWarehouseInfo>
<row>
<WarehouseCode>Mc</WarehouseCode>
</row>
...other equal lines
</ItemWarehouseInfo>
【问题讨论】:
-
只是我个人的喜好,但我会使用 Xsl 来完成这样的任务。如果你有兴趣,我会发布一个答案。