【发布时间】:2018-05-23 20:08:35
【问题描述】:
我有一个 XML 文件。我正在寻求帮助以从此 xml 文件创建多个 xml 文件。新的 xml 将具有具有相同 EmpID 的所有节点。我正在使用 C# 代码并且能够创建 xmls Xml 看起来像这样 -
<?xml version="1.0" encoding="utf-8"?>
<Connected>
<Emp>
<A.EMPLID>1</A.EMPLID>
<A.Phone>12##</A.Phone>
</Emp>
<Emp>
<A.EMPLID>1</A.EMPLID>
<A.Add>XXXXXXX</A.Add>
</Emp>
<Emp>
<A.EMPLID>2</A.EMPLID>
<A.Phone>##34</A.Phone>
</Emp>
<Emp>
<A.EMPLID>3</A.EMPLID>
</Emp>
<Emp>
<A.EMPLID>3</A.EMPLID>
<A.Add>XXXXXXX</A.Add>
</Emp>
</Connected>
对于 3 个不同的 EmplId,输出将是 3 个不同的 Xml
1.xml
<Connected>
<Emp>
<A.EMPLID>1</A.EMPLID>
<A.Phone>12##</A.Phone>
</Emp>
<Emp>
<A.EMPLID>1</A.EMPLID>
<A.Add>XXXXXXX</A.Add>
</Emp>
</Connected>
2.xml
<Connected>
<Emp>
<A.EMPLID>2</A.EMPLID>
<A.Phone>##34</A.Phone>
</Emp>
</Connected>
3.xml
<Connected>
<Emp>
<A.EMPLID>3</A.EMPLID>
</Emp>
<Emp>
<A.EMPLID>3</A.EMPLID>
<A.Add>XXXXXXX</A.Add>
</Emp>
</Connected>
我正在尝试编写 C# 代码。使用 XElement
XElement x = new XElement("Connected",new XElement("Emp",new XElement("A.EMPLID", group.Key),group.Select(g => g.Elements().Where(e =>e.Name != "A.EMPLID"))));
但它正在创造这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<Connected>
<Emp>
<A.EMPLID>1</A.EMPLID>
<A.Phone>12##</A.Phone>
<A.Add>XXXXXXX</A.Add>
</Emp>
</Connected>
我需要为 Empld 生成 3 个 xml,但节点的顺序应该完全相同。
【问题讨论】:
-
您能否请edit 提出您的问题并分享您目前拥有的产生不正确XML 的完整代码——即minimal reproducible example?这与您之前的问题How to get value from XElement using C# 和Break xml in to multiple xml using C# 有什么关系?这是同一个问题,还是不同的问题?