1

我有一个 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>

我想获取属性“cnumber”。结果:

Chapter={"CHP 1";"CHP 2",....};

我未完成的代码:

XDocument xdoc = XDocument.Load("Book.xml");
        var temp = xdoc.Descendants("CHP").Where(x => x.Attribute("cnumber").Value != "0");

谢谢。

4

1 回答 1

4

看起来您可能可以使用:

var chapters = xdoc.Descendants("CHP")
                   .Select(x => "CHP " + x.Attribute("cnumber").Value)
                   .ToList();

目前尚不清楚为什么您需要一个Where子句 - 当然,您提供的样本cnumber数据中没有一个是 0 或不存在的cnumber。如果你需要考虑到这一点,你应该明确地说出来。

(顺便说一句,你真的需要“CHP”部分吗?为什么不只是有一个List<int>?)

于 2012-07-07T14:50:53.510 回答