【发布时间】:2011-09-22 20:53:55
【问题描述】:
可能重复:
LINQ to XML Newbie: Moving Nodes From One Node To Another
我有以下通过使用由 XElements 组成的 XDocument 生成的 XML,但是我在格式化 XML 格式时遇到了问题:
这就是我现在拥有的:
<Root>
<Companies>
<Company>
<ID>1</ID)
<Name>Kalle</Name>
<RegNo>1111</RegNo>
</Company>
</Companies>
<Companies>
<Company>
<ID>1</ID)
<Name>Kalle</Name>
<RegNo>1112</RegNo>
</Company>
</Companies>
</root>
这就是我想要的:
<Root>
<Companies>
<Company>
<ID>1</ID)
<Name>Kalle</Name>
<RegNo>1111</RegNo>
<RegNo>1112</RegNo>
</Company>
</Companies>
</Root>
我想要做的是将所有类似的条目/帖子移动到类似的节点。这部分代码:
XElement xmlTree = new XElement("Root", File.ReadAllLines("C:\\Data.txt")
.Select
(
line =>
{
var split = line.DelSplit();
return new XElement("Companies",
new XElement("Company", split[0]),
new XElement("ID",
new XElement("Name",
new XElement("RegNo", split[1])
);
}
)
XDocument Xdoc = new XDocument(xmlTree);
Xdoc.Save("c:\\Data.xml");
这是我要合并的原始来源:
<Club>
<ID>A</ID>
<ContractYears>
<ContractYear>
<Year>2011</Year>
<Owners>
<Owner>
<OwnerName>Walt Disney</OwnerName>
<RegistrationNumber>131313</RegistrationNumber>
<Vessels>
<Vessel>
<VesselName>Alpha</VesselName>
<Status>A</Status>
<DateAttached></DateAttached>
<BrokerName></BrokerName>
<Currencies>
<Currency>
<CurrencyCode></CurrencyCode>
<TotalValue></TotalValue>
<InterestSplits>
<InterestSplit>
<Number></Number>
<Amount></Amount>
</InterestSplit>
</InterestSplits>
</Currency>
</Currencies>
</Vessel>
</Vessels>
</Owner>
</Owners>
</ContractYear>
</ContractYears>
</Club>
<Club>
<ID>A</ID>
<ContractYears>
<ContractYear>
<Year>2011</Year>
<Owners>
<Owner>
<OwnerName>Walt Disney.</OwnerName>
<RegistrationNumber>131313</RegistrationNumber>
<Vessels>
<Vessel>
<VesselName>Beta</VesselName>
<Status></Status>
<DateAttached></DateAttached>
<BrokerName></BrokerName>
<Currencies>
<Currency>
<CurrencyCode></CurrencyCode>
<TotalValue></TotalValue>
<InterestSplits>
<InterestSplit>
<Number></Number>
<Amount></Amount>
</InterestSplit>
</InterestSplits>
</Currency>
</Currencies>
</Vessel>
</Vessels>
</Owner>
</Owners>
</ContractYear>
</ContractYears>
</Club>
<Club>
【问题讨论】:
-
你有任何你已经尝试过的代码示例吗?
-
你想在一个元素中包含两个同名的 XElement ??
标签: c# xml linq-to-xml