在.Net中使用Linq解析没有根元素的xml元素 - c#

我有以下似乎无法查询的xml包,因为它不包含根元素。不幸的是,xml有效负载无法更改,因此我被这种方法所困扰。我想知道是否有一个很好的方法来更改我的示例。我也尝试使用DesendantsAndSelf,但无法使其正常工作。 Tnx为您提供帮助。

    string xml = @"<book number='3'>
                    <description>Test</description>
                    <chapter number='3-1-1'>
                        <description>Test</description>
                    </chapter>
                    <chapter number='3-1-2'>
                        <description>Test</description>
                    </chapter>
                    </book>";

这是我的代码示例:

                    XElement element= XElement.Parse(xml);
                    List<Book> books = ( from t in element.Descendants("book")
                        select new Book
                        {
                            number = (String)t.Attribute("number"),
                            description = (String)t.Element("description").Value,

                            // Load the chapter information
                            chapters = t.Elements("chapter")
                                .Select(te => new Chapter
                            {
                                number = (String)te.Attribute("number"),
                                description = (String)t.Element("description").Value
                            }).ToList(),                                    
                        }).ToList();

            foreach(var d in books)
            {
                Console.WriteLine(String.Format("number = {0}: description = {1}",d.number,d.description));
                foreach(var c in d.chapters)
                    Console.WriteLine(String.Format("number = {0}: description = {1}",c.number,c.description));
            }

这是我的课程对象:

public class Book
{
    public String number { get; set; }
    public String description { get; set; }
    public List<Chapter> chapters { get; set; }
}

public class Chapter
{
    public String number { get; set; }
    public String description { get; set; }
}

参考方案

只需将XElement element= XElement.Parse(xml);更改为var element = XDocument.Parse(xml);。在这种情况下,您将获得一个具有XDocument后代的book实例。如果使用XElement element= XElement.Parse(xml);,则当前元素将是book,其中没有任何book后代。

在(非常大的)熊猫数据框中定位值并将其存储到字典中 - python

我有一个很大的熊猫数据框。数据框如下所示:>> df "a_1" "a_2" "b_1" "c_2" ... "d_1" nan 0.2 nan nan "d_2" 0.1 nan nan 1 "e_1" n…

在.net中分配新数组的成本很高 - c#

.Net中分配数组的O时间复杂度是多少?我猜想,如果数组足够小以适合临时段,则应该为O(1),但是随着n变大,它将很难找到足够的内存,因此可能会改变。同样,大对象堆可能会碎片化,因此,如果n足够大以使数组适合LOH,则它可能不会是O(1)。 参考方案 临时段中的对象(SOH;小对象堆)在该段上的最后一个已知对象之后分配。它实际上应该只是一个指向那里的指针。由…

在 Pandas 中放置多列 - python

我正在尝试使用以下代码在熊猫数据框中按索引号删除多列(数据集中的第2列和第70列,分别索引为1和69):df.drop([df.columns[[1, 69]]], axis=1, inplace=True) 我收到以下错误:TypeError: unhashable type: 'Index' 在我的代码中,[1,69]突出显示并说:E…

在.NET中导入模块,然后将其用作对象? - c#

                                我有一个Python模块,我希望能够像C#中的类一样导入它的一部分,并尽可能地访问其方法,例如.NET native。如何使用IronPython完成此操作? 参考方案 看一下这个:https://wiki.python.org/moin/IntegratingPythonWithOtherLa…

在 Pandas df中找到timedelta对象的均值和标准差 - python

我想通过银行与下面显示的两列mean来计算standard deviation的timedelta和dataframe。当我运行代码(也显示在下面)时,出现以下错误:pandas.core.base.DataError: No numeric types to aggregate 我的数据框: bank diff Bank of Japan 0 days 0…