我有一个像这样的 XML,<Names> <Name> <FName>Abc</FName> <LName>XYZ</LName> </Name> <Name> <FName>Abc2</FName> <LName>XYZ2</LName> </Name> <Name> <FName>Abc3</FName> <LName>XYZ3</LName> </Name> <Name> <FName>Abc4</FName> <LName>XYZ4</LName> </Name></Names>我试图在 c# 中预言性地更改节点名称,如果它们出现不止一次并且除了第一个节点。第一个节点名称保持不变;处理完 XML 后应该是这样的;<Names> <Name> // kepp first node name same <FName>Abc</FName> <LName>XYZ</LName> </Name> <ChildName> //changed <FName>Abc2</FName> <LName>XYZ2</LName> </ChildName> <ChildName> //changed <FName>Abc3</FName> <LName>XYZ3</LName> </ChildName> <ChildName> // changed <FName>Abc4</FName> <LName>XYZ4</LName> </ChildName></Names>Name的节点可以是一个,如果是一次,保持不变,如果多则保留第一个并更改其他人的名称。我正在尝试这个 XML 对象的IEnumerable<XElement>类型;//check if NAME node occurs multiple times, make other to child.var nameCounts = element.Descendants().Where(x => x.Name.LocalName == "Name");int number = nameCounts.Count();if (number > 1) // if occurance more than one{ foreach (var e in element.Descendants().Where(x => x.Name.LocalName == "Name").ToList()) { //e.NodesAfterSelf(); // unable to understand what to do }}
1 回答
- 1 回答
- 0 关注
- 175 浏览
添加回答
举报
0/150
提交
取消