我有一个xml文件。
<BOOK bnumber="1" bname="Book">
<CHP cnumber="1">
<VER vnumber="1">This is the sentence 1.</VER>
<VER vnumber="2">This is the sentence 2.</VER>
<VER vnumber="3">This is the sentence 3.</VER>
</CHP>
<CHP cnumber="2">
<VER vnumber="1">Hello World 1.</VER>
<VER vnumber="2">Hello World 2.</VER>
<VER vnumber="3">Hello World 3.</VER>
<VER vnumber="4">Hello World 4.</VER>
</CHP>
<!--MANY: Thousand records-->
</BOOK>
我想知道attribure&#34; cnumber&#34;。结果:
Chapter={"CHP 1";"CHP 2",....};
我未完成的代码:
XDocument xdoc = XDocument.Load("Book.xml");
var temp = xdoc.Descendants("CHP").Where(x => x.Attribute("cnumber").Value != "0");
感谢。
答案 0 :(得分:4)
看起来你可以使用:
var chapters = xdoc.Descendants("CHP")
.Select(x => "CHP " + x.Attribute("cnumber").Value)
.ToList();
目前尚不清楚为什么你需要一个Where
条款 - 当然,你所提供的样本数据都没有cnumber
为0,或者缺席{ {1}}。如果您需要考虑到这一点,您应该明确说明。
(你真的需要“CHP”部分开始吗,顺便说一下?为什么不只是cnumber
?)