我有這樣的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