1

ここに XML ドキュメントがあります。

<?xml version="1.0" encoding="utf-8" ?>
<CATALOG>
  <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
  </CD>
  <CD>
    <TITLE>Hide your heart</TITLE>
    <ARTIST>Bonnie Tyler</ARTIST>
    <COUNTRY>UK</COUNTRY>
    <COMPANY>CBS Records</COMPANY>
    <PRICE>9.90</PRICE>
    <YEAR>1988</YEAR>
  </CD>
  <CD>
    <TITLE>Test Title 1</TITLE>
    <ARTIST>Test Name 1</ARTIST>
    <COUNTRY>Test Country 1</COUNTRY>
    <COMPANY>Test Company 1</COMPANY>
    <PRICE>100.00</PRICE>
    <YEAR>1985</YEAR>
  </CD>
  <CD>
    <TITLE>Test Title 3</TITLE>
    <ARTIST>Test Name 3</ARTIST>
    <COUNTRY>Test Country 3</COUNTRY>
    <COMPANY>Test Company 3</COMPANY>
    <PRICE>1.99</PRICE>
    <YEAR>1984</YEAR>
  </CD>
  <CD>
    <TITLE>Test Title 2</TITLE>
    <ARTIST>Test Name 2</ARTIST>
    <COUNTRY>Test Country 2</COUNTRY>
    <COMPANY>Test Company 2</COMPANY>
    <PRICE>19.99</PRICE>
    <YEAR>1985</YEAR>
  </CD>
</CATALOG>

私がやろうとしているのは、年が 1985 であるすべての CD を見つけることです。私は LINQ to XML を初めて使用するので、何をしているのかわかりません。ほとんどのインターネット リソースは非常に具体的な例であるため、自分の例に適用するのに苦労しています。

これまでにコーディングした C# は次のとおりです。

namespace ReadingXML
{
    class Program
    {
        static void Main(string[] args)
        {
            XElement xelement = XElement.Load("..\\..\\music.xml");
            IEnumerable<XElement> music = xelement.Elements();
            /*// Read the entire XML
            foreach (var item in catalogues)
            {
                Console.WriteLine(item);
            }

            Console.ReadLine();*/

            var query = from item in music.Descendants("CD")
                        select new { year = item.Element("YEAR").Equals(1985) };

            foreach (var item in query)
                Console.WriteLine(item.ToString());

            Console.ReadLine();
        }
    }
}

誰かが私がやろうとしていることを達成する方法や、コードが機能しない理由を教えてもらえますか?

4

2 に答える 2