gpt4 book ai didi

c# - 附加到大型xml

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:03 26 4
gpt4 key购买 nike

我正在编写一个程序来将歌曲的详细信息存储到xml,这是我的代码

            private XmlDocument mediaXmlDoc = new XmlDocument();
private XmlNode rootNode;

mediaXmlDoc.RemoveAll();

rootNode = mediaXmlDoc.CreateElement("filelist");
mediaXmlDoc.AppendChild(rootNode);


对于每首歌曲,我都会附加以下详细信息

            XmlNode file = mediaXmlDoc.CreateElement("file");                

XmlNode filename = mediaXmlDoc.CreateElement("filename");
filename.InnerText = FileName;
file.AppendChild(filename);

XmlNode path = mediaXmlDoc.CreateElement("path");
path.InnerText = Path;
file.AppendChild(path);

XmlNode ext = mediaXmlDoc.CreateElement("ext");
ext.InnerText = Ext;
file.AppendChild(ext);

XmlNode artist_name = mediaXmlDoc.CreateElement("artist_name");
artist_name.InnerText = ArtistNameString;
file.AppendChild(artist_name);

XmlNode song_title = mediaXmlDoc.CreateElement("song_title");
song_title.InnerText = SongTitleString;
file.AppendChild(song_title);

XmlNode genre = mediaXmlDoc.CreateElement("genre");
genre.InnerText = GenreString;
file.AppendChild(genre);

XmlNode comments = mediaXmlDoc.CreateElement("comments");
comments.InnerText = CommentsString;
file.AppendChild(comments);

XmlNode album_name = mediaXmlDoc.CreateElement("album_name");
album_name.InnerText = AlbumNameString;
file.AppendChild(album_name);

XmlNode year = mediaXmlDoc.CreateElement("year");
year.InnerText = YearString;
file.AppendChild(year);

XmlNode track_number = mediaXmlDoc.CreateElement("track_number");
track_number.InnerText = TrackNumberString;
file.AppendChild(track_number);

XmlNode duration = mediaXmlDoc.CreateElement("duration");
duration.InnerText = DurationString;
file.AppendChild(duration);

XmlNode bit_rate = mediaXmlDoc.CreateElement("bit_rate");
bit_rate.InnerText = BitRateString;
file.AppendChild(bit_rate);

XmlNode protected_media = mediaXmlDoc.CreateElement("protected");
protected_media.InnerText = ProtectedString;
file.AppendChild(protected_media);

XmlNode sample_rate = mediaXmlDoc.CreateElement("sample_rate");
sample_rate.InnerText = SampleRateString;
file.AppendChild(sample_rate);

XmlNode channels = mediaXmlDoc.CreateElement("channels");
channels.InnerText = ChannelsString;
file.AppendChild(channels);

rootNode.AppendChild(file);


我的问题是,随着xml大小的增加,追加速度感觉降低,我该怎么解决该性能问题

谢谢,

最佳答案

您应该真正使用XmlWriter类。 XmlDocument将所有xml加载到内存中,并且使用巨大的文件,操作可能会变得非常缓慢。

有关如何使用此类的信息,请参见this example tutorial

关于c# - 附加到大型xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1259177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com