XML文件操作
头文件
#include <msxmldom.hpp>
#include <XMLDoc.hpp>
#include <xmldom.hpp>
#include <XMLIntf.hpp>
/*
保存
路径:abcd\\abcd\\abcd.xml
*/
void CustomerPlayList::Save()
{
_di_IXMLDocument doc = NewXMLDocument();
doc->DocumentElement = doc->CreateElement(WideString("root"),"");
_di_IXMLNode root = doc->DocumentElement;
int count = this->PlayList->Items->Count;
for(int i = 0 ; i < count ; ++i)
{
_di_IXMLNode child = root->AddChild(WideString("item"));
child->SetAttribute(WideString("Title"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[0]));
child->SetAttribute(WideString("Singer"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[1]));
child->SetAttribute(WideString("Length"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[2]));
child->SetAttribute(WideString("PlayTime"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[3]));
child->SetAttribute(WideString("FileType"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[4]));
child->SetAttribute(WideString("LocalPath"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[5]));
child->SetAttribute(WideString("NetPath"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[6]));
}
doc->SaveToFile(this->GetPath());
}
保存
路径:abcd\\abcd\\abcd.xml
*/
void CustomerPlayList::Save()
{
_di_IXMLDocument doc = NewXMLDocument();
doc->DocumentElement = doc->CreateElement(WideString("root"),"");
_di_IXMLNode root = doc->DocumentElement;
int count = this->PlayList->Items->Count;
for(int i = 0 ; i < count ; ++i)
{
_di_IXMLNode child = root->AddChild(WideString("item"));
child->SetAttribute(WideString("Title"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[0]));
child->SetAttribute(WideString("Singer"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[1]));
child->SetAttribute(WideString("Length"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[2]));
child->SetAttribute(WideString("PlayTime"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[3]));
child->SetAttribute(WideString("FileType"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[4]));
child->SetAttribute(WideString("LocalPath"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[5]));
child->SetAttribute(WideString("NetPath"),WideString(this->PlayList->Items->Item[i]->SubItems->Strings[6]));
}
doc->SaveToFile(this->GetPath());
}
/*
加载本地播放列表
路径:abcd\\abcd\\abcd.xml
*/
void CustomerPlayList::GetPlayList()
{
if(FileExists(AnsiString(this->GetPath())))
{
_di_IXMLDocument doc = LoadXMLDocument(this->GetPath());
_di_IXMLNodeList list = doc->DocumentElement->ChildNodes;
for(int i = 0 , l = list->Count ; i < l ; ++i)
{
_di_IXMLNode node = list->Nodes[i];
TListItem* it = this->PlayList->Items->Add();
it->Caption = AnsiString(i+1);
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("Title"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("Singer"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("Length"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("PlayTime"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("FileType"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("LocalPath"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("NetPath"))));
}
}
}
加载本地播放列表
路径:abcd\\abcd\\abcd.xml
*/
void CustomerPlayList::GetPlayList()
{
if(FileExists(AnsiString(this->GetPath())))
{
_di_IXMLDocument doc = LoadXMLDocument(this->GetPath());
_di_IXMLNodeList list = doc->DocumentElement->ChildNodes;
for(int i = 0 , l = list->Count ; i < l ; ++i)
{
_di_IXMLNode node = list->Nodes[i];
TListItem* it = this->PlayList->Items->Add();
it->Caption = AnsiString(i+1);
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("Title"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("Singer"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("Length"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("PlayTime"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("FileType"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("LocalPath"))));
it->SubItems->Add(AnsiString(node->GetAttribute(WideString("NetPath"))));
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了