C#:读取XML文件(Rekordbox输出XML),修改,保存

C#:读取XML文件(Rekordbox输出XML),修改,保存,c#,xml,C#,Xml,首先,如果这是一个愚蠢的问题,我很抱歉——我不是很懂C 我要做的是读取一个XML文件——即Rekordbox导出的XML文件——并对其进行修改/添加一些标记 XML基本上包含大量信息和曲目列表,示例如下: <DJ_PLAYLISTS Version="1.0.0"> <PRODUCT Name="rekordbox" Version="5.8.0" Company="Pioneer DJ"/> <COLLECTION Entries="1"> &

首先,如果这是一个愚蠢的问题,我很抱歉——我不是很懂C

我要做的是读取一个XML文件——即Rekordbox导出的XML文件——并对其进行修改/添加一些标记

XML基本上包含大量信息和曲目列表,示例如下:

<DJ_PLAYLISTS Version="1.0.0">
  <PRODUCT Name="rekordbox" Version="5.8.0" Company="Pioneer DJ"/>
  <COLLECTION Entries="1">
   <TRACK TrackID="1" Name="We Love XML" Artist="DJ File"
           Composer="" Album="Rekordbox" Grouping="" Genre="Electronic"
           Kind="MP3 File" Size="13908605" TotalTime="345" DiscNumber="0"
           TrackNumber="4" Year="2018" AverageBpm="134.00" DateAdded="2018-05-16"
           BitRate="320" SampleRate="44100" Comments=""
           PlayCount="0" Rating="0" Location="file://localhost/C:/Users/DJFile/Music/DJ File Hits/We Love XML"
           Remixer="" Tonality="B" Label="" Mix="">
      <TEMPO Inizio="0.098" Bpm="134.00" Metro="4/4" Battito="1"/>
      <POSITION_MARK Name="" Type="0" Start="0.098" Num="-1"/>
    </TRACK>
  </COLLECTION>
  <PLAYLISTS>
    <NODE Type="0" Name="ROOT" Count="0"/>
  </PLAYLISTS>
</DJ_PLAYLISTS>




问题是-我对确切的文件格式不感兴趣。
我只想解析曲目列表,并修改/添加“POSITION\u MARK”条目。 所以-我想读取原始文件,并按原样保存,只需添加一个或多个“位置标记”条目


所以我的问题是-如何读取随机XML文件,修改我感兴趣的曲目条目,并将其保存回包含所有原始信息和我添加的内容?

尝试以下XML linq:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);
            XElement track = doc.Descendants("TRACK").FirstOrDefault();

            XElement newPostitionMark = new XElement("POSITION_MARK", new object[] {
                new XAttribute("Name", "John"),
                new XAttribute("Type", 5),
                new XAttribute("Start", 1.0),
                new XAttribute("Num", 0)
            });
            track.Add(newPostitionMark);

            doc.Save(FILENAME);

        }
    }
}
在课堂上开始你的研究。