C# 在两个节点之间取一个节点
我有以下格式的XmlC# 在两个节点之间取一个节点,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 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作为代码生成器。请参阅帮助中心以获取指导。