我有这样的XML的LINQ to XML skipwhile()takewhile()
<root>
<TR_ZAL IDZ="cOY9" O="0">
</TR_ZAL>
<TR_ZAL IDZ="FOXd" O="10">
</TR_ZAL>
<TR_ZAL IDZ="wAW5" O="1">
<TR_ZAL IDZ="AWak" O="1">
</TR_ZAL>
<TR_ZAL IDZ="XpPp" O="10">
</TR_ZAL>
<TR_ZAL IDZ="asTu" O="10">
</TR_ZAL>
<TR_ZAL IDZ="y9VV" O="1">
</TR_ZAL>
</root>
,我知道IDZ
"AWak"
,我的任务是让已知IDZ
和所有之后的元素,直至与相同的下一个元素属性O
,如果没有其他人,那么我应该得到所有剩余的元素。在这种情况下,它应该是
<TR_ZAL IDZ="AWak" O="1">
</TR_ZAL>
<TR_ZAL IDZ="XpPp" O="10">
</TR_ZAL>
<TR_ZAL IDZ="asTu" O="10">
</TR_ZAL>
所以我试图使用LINQ,但我找不到我的错误,所以任何人都可以请HALP我吗?
IEnumerable<XElement> rozsah = xmlText.Root.Elements("TR_ZAL")
.SkipWhile(x => x.Attribute("IDZ").Value != "AWak")
.Take(1)
.TakeWhile(x =>Convert.ToInt32(x.Attribute("O").Value) != o);
您的输入XML无效(并非所有TR_ZAL都已关闭标记)。你能解决它吗?你有层次结构吗?或者一切都只是一个TR_ZAL列表? – outcoldman 2013-04-07 23:51:48
哦,我很抱歉,由于复制粘贴错误,xml无效 – david 2013-04-08 00:24:27