Jak dodać do stringa elementy child i parent z XML

0
<data>
<game>
<id>173</id>
<stadium>173</stadium>
<date>20230408181th</date>
<title>123</title>
</game>
<block>
<id>1</id>
<entry>4</entry>
<title>0</title>
<visible>1</visible>
<numbered>1</numbered>
<seat>
<id>1</id>
<intid>123456</intid>
<abo>N</abo>
<customer>
<customerid>10295</customerid>
</customer>
</seat>
<seat>
<id>1</id>
<intid>1234567</intid>
<abo>N</abo>
<customer>
<customerid>10295</customerid>
</customer>
</seat>
</block>
<block>
<id>2</id>
<entry>3</entry>
<title>0</title>
<visible>1</visible>
<numbered>1</numbered>
<seat>
<id>1</id>
<intid>12345678</intid>
<abo>N</abo>
<customer>
<customerid>102951</customerid>
</customer>
</seat>
<seat>
<id>1</id>
<intid>123456790</intid>
<abo>N</abo>
<customer>
<customerid>102951</customerid>
</customer>
</seat>
</block>

  AllocConsole();
            var daneXML = XElement.Load("file.xml");
            string game_id = daneXML.Elements("game").Elements("id").First().Value;
            textbox.Text = game_id;
            var games = daneXML.Elements("game").Select(game => game.Element("id").Value + "," + game.Element("stadium").Value +","+ game.Element("date").Value + ","+game.Element("title").Value);
            foreach (var game in games)
            {
              
                Console.WriteLine(game);

            }

            var blocks = daneXML.Elements("block").Select(block => block.Element("id").Value + "," + block.Element("entry").Value + "," + block.Element("visible").Value + "," + block.Element("numbered").Value);
            foreach (var block in blocks)
            {
                Console.WriteLine(block + "," + game_id);
            }

            var customers = daneXML.Elements("block").Elements("seat").Elements("customer").Select(customer => customer.Element("customerid").Value + "," + customer.Element("name").Value + "," + customer.Element("vorname").Value);
            foreach (var customer in customers)
            {
                Console.WriteLine(customer);
                //insert ignore
            }


            var seats = daneXML.Elements("block").Elements("seat").Select(seat => seat.Element("id").Value + "," + seat.Element("intid").Value + "," + seat.Element("abo").Value + "," + seat.Element("customerid").Value);
            foreach (var seat in seats)
            {
                Console.WriteLine(seat+","+game_id);
                
            }

Wydobycie tych danych nie stanowi problemu, szczególnie, że gamę_id ma stałą wartość, jednak seat powinien jeszcze zawierać informację nadrzędną block>id i podrzędną customer>customerid i tu zaczynają się schody, bo nie mogę się do nich dobrać w Console.WriteLine(seat+","+game_id); ani w seat, ani jako osobna wartość.

2

Zrób sobie klasę i deserializuj. Nigdy nie baw się w ręczne parsowanie XMLa.
How to Serialize and Deserialize an XML File into a C# Object (and Vice-Versa)

1 użytkowników online, w tym zalogowanych: 0, gości: 1