为了账号安全,请及时绑定邮箱和手机立即绑定

在 XML C# 中第一次出现后更改子节点名称的值

在 XML C# 中第一次出现后更改子节点名称的值

C#
守着星空守着你 2021-06-04 07:39:30
我有一个像这样的 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 关注
  • 166 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信