Получить значение узла XML, используя.EndsWith

У меня есть следующий XML

<location>
<name>Name</name>
<weeks>
<week>
  <Sunday>
    <times>
      <currently_open>false</currently_open>
      <status>open</status>
      <hours>
        <hour>
          <from>10am</from>
          <to>6pm</to>
        </hour>
      </hours>
    </times>
    <date>2018-09-23</date>
    <rendered>10am - 6pm</rendered>
  </Sunday>
  <Monday>
    <times>
      <currently_open>false</currently_open>
      <status>open</status>
      <hours>
        <hour>
          <from>8:30am</from>
          <to>12am</to>
        </hour>
      </hours>
    </times>
    <date>2018-09-24</date>
    <rendered>8:30am - 12am</rendered>
  </Monday>
  <Tuesday>
    <times>
      <currently_open>false</currently_open>
      <status>open</status>
      <hours>
        <hour>
          <from>8:30am</from>
          <to>12am</to>
        </hour>
      </hours>
    </times>
    <date>2018-09-25</date>
    <rendered>8:30am - 12am</rendered>
  </Tuesday>
  <Wednesday>
    <times>
      <currently_open>true</currently_open>
      <status>open</status>
      <hours>
        <hour>
          <from>8:30am</from>
          <to>12am</to>
        </hour>
      </hours>
    </times>
    <date>2018-09-26</date>
    <rendered>8:30am - 12am</rendered>
  </Wednesday>
  <Thursday>
    <times>
      <currently_open>false</currently_open>
      <status>open</status>
      <hours>
        <hour>
          <from>8:30am</from>
          <to>12am</to>
        </hour>
      </hours>
    </times>
    <date>2018-09-27</date>
    <rendered>8:30am - 12am</rendered>
  </Thursday>
  <Friday>
    <times>
      <currently_open>false</currently_open>
      <status>open</status>
      <hours>
        <hour>
          <from>8:30am</from>
          <to>12am</to>
        </hour>
      </hours>
    </times>
    <date>2018-09-28</date>
    <rendered>8:30am - 12am</rendered>
  </Friday>
  <Saturday>
    <times>
      <currently_open>false</currently_open>
      <status>open</status>
      <hours>
        <hour>
          <from>10am</from>
          <to>6pm</to>
        </hour>
      </hours>
    </times>
    <date>2018-09-29</date>
    <rendered>10am - 6pm</rendered>
  </Saturday>
</week>
</weeks>
</location>

Мне удалось получить значения имени, даты и отрисовки, используя следующий код

 String URLString = "https://api3.libcal.com/api_hours_grid.php?iid=4246&format=xml&weeks=1&systemTime=0";
        XDocument xdoc = new XDocument();
        xdoc = XDocument.Load(URLString);

        var location = (from p in xdoc.Descendants("location")
                        from s in p.Descendants("week").Elements()
                        //from l in p.Descendants().Where( l => l.Ends)
                        select new
                        {
                            CampusName = (string)p.Element("name"),
                            WeekD = (string)s.Element("date"),
                            OpenHours = (string)s.Element("rendered"),
                            //D = p.Descendants("week").Where(z => p.Element.EndsWith("day"))

                        }).ToList();

Я хотел бы иметь возможность получить значение тех узлов, которые содержат названия дней, например, воскресенье, понедельник и так далее. Я пытался использовать.EndsWith и в моем от утверждения и в утверждении выбора нового, но ни один не является правильным. Может ли кто-нибудь указать мне правильное направление, как его использовать?

С благодарностью

Сэм

1 ответ

Решение

Если я правильно понимаю, вы хотите получить день, в который хранится это событие. Чтобы получить это, вам просто нужно сделать, как показано ниже,

select new
         {
           CampusName = (string)p.Element("name"),
           WeekD = (string)s.Element("date"),
           OpenHours = (string)s.Element("rendered"),
           Day = s.Name.LocalName,
        }).ToList();

Это должно дать вам день для этих относительных данных.

Другие вопросы по тегам