C# 在两个节点之间取一个节点

C# 在两个节点之间取一个节点,c#,xml,C#,Xml,我有以下格式的Xml <?xml version="1.0" encoding="UTF-8"?> <htmlString> <ACTION v="Search"/> <KEY/> <ACCOUNTNO v=""/> <AGREEMENTREF1/> <AGREEMENTREF2/> <PAYMENTREF1/> <PAYMENTREF2/> <PROGRAM v="SOW03301

我有以下格式的Xml

<?xml version="1.0" encoding="UTF-8"?>
<htmlString>
<ACTION v="Search"/>
<KEY/>
<ACCOUNTNO v=""/>
<AGREEMENTREF1/>
<AGREEMENTREF2/>
<PAYMENTREF1/>
<PAYMENTREF2/>
<PROGRAM v="SOW03301"/>
<SESSION v="SF3gGV1J4501"/>
<OBJECT v="1"/>
<HTMLFILE v="CGIOTP000023/TEMP:WHTTP"/>
<PIPECOUNTER v="100000386"/>
</htmlString>

我需要动作和会话之间的部分作为字符串

<KEY/>
<ACCOUNTNO v=""/>
<AGREEMENTREF1/>
<AGREEMENTREF2/>
<PAYMENTREF1/>
<PAYMENTREF2/>
<PROGRAM v="SOW03301"/>


您能在这方面提供帮助吗?提前谢谢。

您可以使用
XElement.ElementsAfterSelf

string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?>
<htmlString>
<ACTION v=""Search""/>
<KEY/>
<ACCOUNTNO v=""""/>
<AGREEMENTREF1/>
<AGREEMENTREF2/>
<PAYMENTREF1/>
<PAYMENTREF2/>
<PROGRAM v=""SOW03301""/>
<SESSION v=""SF3gGV1J4501""/>
<OBJECT v=""1""/>
<HTMLFILE v=""CGIOTP000023/TEMP:WHTTP""/>
<PIPECOUNTER v=""100000386""/>
</htmlString>";

var xd = XDocument.Parse(xml);
var elements = xd.Root.Element("ACTION")
    .ElementsAfterSelf()
    .TakeWhile(xe => xe.Name.LocalName != "SESSION")
    .Select(xe => xe.ToString());
var sbNew = string.Join(Environment.NewLine, elements);

Console.Write(sbNew);
Console.ReadLine();
stringxml=@”
";
var xd=XDocument.Parse(xml);
var elements=xd.Root.Element(“操作”)
.ElementsAfterSelf()
.TakeWhile(xe=>xe.Name.LocalName!=“会话”)
.Select(xe=>xe.ToString());
var sbNew=string.Join(Environment.NewLine,elements);
Console.Write(sbNew);
Console.ReadLine();
印刷品:

<KEY />
<ACCOUNTNO v="" />
<AGREEMENTREF1 />
<AGREEMENTREF2 />
<PAYMENTREF1 />
<PAYMENTREF2 />
<PROGRAM v="SOW03301" />

提问时,确保包括您尝试过的内容。就目前而言,听起来您正在使用StackOverflow作为代码生成器。请参阅帮助中心以获取指导。