繁体   English   中英

无法从XML文件读取属性

[英]Failed to read attributes from XML file

我尝试了很多尝试,并且做了很多阅读和研究。 最终代码最终读取了我的XML文件,并确实在我的XML文件中获得了正确的行数。 但是,我在字典类型变量中得到的是Null值

这是我的代码:

public void ParkingStatus()
{
    _Default defaultPage = new _Default();

    //baca dari XML file
    XDocument xmlDocReader = XDocument.Load(@".\carpark.xml");

    var tempDict = xmlDocReader.Root.Elements("Lot")
        .ToDictionary(c => c.Elements("name"), c => c.Elements("timeOut"));

    foreach (var iterate in tempDict)
    {
        bool statusParking;
        if (iterate.Value.ToString() == "")
            statusParking = true;
        else
            statusParking = false;

        defaultPage.ParkingStatus.Add(iterate.Key.ToString(), statusParking);
    }
}      

我的XML文件如下:(carpark.xml)

<?xml version="1.0" encoding="UTF-8"?>

<Lot>
     <Lot name="W101" timeIn="2014-11-23 13:22" timeOut="" />
     <Lot name="W102" timeIn="" timeOut="2014-11-23 13:35" />
     <Lot name="W103" timeIn="" timeOut="2014-11-23 11:35" />
     <Lot name="W104" timeIn="2014-11-23 13:35" timeOut="" />
     <Lot name="W105" timeIn="2014-11-23 08:00" timeOut="" />
     <Lot name="W106" timeIn="2014-11-23 07:56" timeOut="" />
     <Lot name="W107" timeIn="" timeOut="2014-11-23 13:15" />
     <Lot name="W108" timeIn="2014-11-23 07:35" timeOut="" />
     <Lot name="W109" timeIn="" timeOut="2014-11-23 12:55" />
     <Lot name="W110" timeIn="2014-11-23 09:00" timeOut="" />
     <Lot name="W111" timeIn="" timeOut="2014-11-23 12:45" />
     <Lot name="W112" timeIn="" timeOut="2014-11-23 13:01" />
</Lot>

我做错了什么?

Lot是一个元素,但nametimeIntimeout是属性。

<Lot name="W102" timeIn="" timeOut="2014-11-23 13:35" />

因此,您应该在Element上使用Attributes方法。

 var tempDict = xmlDocReader.Root.Elements("Lot")
        .ToDictionary(c => c.Attributes("name").FirstOrDefault(), 
                      c => c.Attributes("timeOut").FirstOrDefault());

无需临时字典:

foreach (var el in xmlDocReader.Root.Elements("Lot"))
{
    string name = (string)el.Attribute("name");
    string timeOut = (string)el.Attribute("timeOut");

    ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM