松鼠的博客

导航

统计

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::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"))));
        }
    }
}
复制代码

posted on   Xproer-松鼠  阅读(557)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示