文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>VC中使用CMarkup类操作XML

VC中使用CMarkup类操作XML

时间:2010-07-15  来源:yf956613

//----------UserInfo.xml--------------

<?xml version="1.0" encoding="UTF-8" ?>

<UserInfo>

<UserID>luo</UserID>

<UserID>lin</UserID>

</UserInfo>



1。生成UserInfo.xml

CMarkup xml;

xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");

xml.AddElem("UserInfo");

xml.IntoElem();

xml.AddElem("UserID","luo");

xml.AddElem("UserID","lin");

xml.OutOfElem();

xml.Save("UserInfo.xml");



2。浏览特定元素

//----查看所有UserID----

CMarkup xml;

xml.Load("UserInfo.xml");

BOOL bFind = true;

xml.ResetMainPos();



while (xml.FindChildElem("UserID");)

{

    //此时接点还是父接点

      CString strTagName = _T("");

      CString strData = _T("");

      strTagName = xml.GetChildTagName();

      strData = xml.GetChildData();

      TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);

}

    /********************这样也可以******************

    CMarkup xml;

    xml.Load("UserInfo.xml");

    BOOL bFind = true;

    xml.ResetMainPos();

   

    while (xml.FindChildElem("UserID");)

    {

              xml.IntoElem();

              CString strTagName = _T("");

              CString strData = _T("");

              strTagName = xml.GetTagName();

              strData = xml.GetData();

              TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);

              xml.OutOfElem();


    }*/

    /**************这样也可以**********************

    CMarkup xml;

    xml.Load("UserInfo.xml");

    BOOL bFind = true;

    xml.ResetMainPos();

    xml.FindElem(); //UserInfo

    xml.IntoElem();

    while (xml.FindElem("UserID");)

    {

              CString strTagName = _T("");

              CString strData = _T("");

              strTagName = xml.GetTagName();

              strData = xml.GetData();

              TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);

    }

    */



//-------------结果----------

---tagName:UserID,Data:luo--



---tagName:UserID,Data:lin—



3。修改

//--------把UserID为”luo”改为”flypigluo”-----------

BOOL bLoadXml = false;

CMarkup xml;

bLoadXml = xml.Load("UserInfo.xml");

    if (bLoadXml)

    {

        CString strUserID = _T("");

        xml.ResetMainPos();

        xml.FindElem();

        xml.IntoElem();

        while (xml.FindElem("UserID"))

        {

              strUserID = xml.GetData();

              if (strUserID=="luo")

              {

                  xml.SetData(CString("flypig")+strUserID);

                  xml.Save("UserInfo.xml");

                  break;

              }

        }

    }







4。添加

4。1   添在最后面(使用的是AddElem)

//加在最后面

    BOOL bLoadXml = false;

    CMarkup xml;

    bLoadXml = xml.Load("UserInfo.xml");

    if (bLoadXml)

    {

        xml.ResetMainPos();

        xml.FindElem();

        xml.IntoElem();

        xml.AddElem("UserID","luoluo");

        xml.OutOfElem();

        xml.Save("UserInfo.xml");

    }

//--------原来为------

<?xml version="1.0" encoding="UTF-8" ?>

<UserInfo>

<UserID>luo</UserID>

<UserID>lin</UserID>

</UserInfo>

//---------添加后为-------------

<?xml version="1.0" encoding="UTF-8" ?>

<UserInfo>

<UserID>luo</UserID>

<UserID>lin</UserID>

<UserID>luoluo</UserID>

</UserInfo>



4。2 加在最前面(使用InsertElem)

BOOL bLoadXml = false;

CMarkup xml;

bLoadXml = xml.Load("UserInfo.xml");

if (bLoadXml)

{

    xml.ResetMainPos();

    xml.FindElem();

    xml.IntoElem();

    xml.InsertElem("UserID","AddUserIDHead");

    xml.OutOfElem();

    xml.Save("UserInfo.xml");

}

//----原来为—

<?xml version="1.0" encoding="UTF-8" ?>

<UserInfo>

<UserID>luo</UserID>

<UserID>lin</UserID>

</UserInfo>

//------修改后-----

<?xml version="1.0" encoding="UTF-8" ?>

<UserInfo>

<UserID>AddUserIDHead</UserID>

<UserID>luo</UserID>

<UserID>lin</UserID>

</UserInfo>



5。删除

CMarkup xml;

xml.Load("UserInfo.xml");

BOOL bFind = true;

xml.ResetMainPos();    

while (bFind)

{

    bFind = xml.FindChildElem("UserID");

    if (bFind)

    {

        //此时接点还是父接点

        CString strData = _T("");

        strData = xml.GetChildData();

        if (strData=="luo")

        {

              xml.RemoveChildElem();

              xml.Save("UserInfo.xml");

              break;

        }

    }

}





6。查找

见第二点浏览。类似





上面的例子里面没有属性这些东西,下面的一个例子是有属性的

//UserInfo1.xml

<?xml version="1.0" encoding="UTF-8" ?>

<UserInfo>

<User UserID="UserID00" UserPwd="UserPwd00" UserLevel="158" />

<User UserID="UserID01" UserPwd="UserPwd01" UserLevel="162" />

<User UserID="UserID02" UserPwd="UserPwd02" UserLevel="165" />

<User UserID="UserID03" UserPwd="UserPwd03" UserLevel="168" />

<User UserID="UserID04" UserPwd="UserPwd04" UserLevel="171" />

<User UserID="UserID05" UserPwd="UserPwd05" UserLevel="175" />

<User UserID="UserID06" UserPwd="UserPwd06" UserLevel="178" />

<User UserID="UserID07" UserPwd="UserPwd07" UserLevel="181" />

<User UserID="UserID08" UserPwd="UserPwd08" UserLevel="184" />

<User UserID="UserID09" UserPwd="UserPwd09" UserLevel="188" />

</UserInfo>

7。产生

CString strID = _T("");

    CString strPwd = _T("");

    CMarkup xml;

    xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

    xml.AddElem("UserInfo");

    xml.IntoElem();

    for (int i=0; i<10; i++)

    {

        //产生一个随机数,作为权限

        srand(UINT(time(NULL)+i));

        int nLevel = rand()%256;

        strID.Format("UserID%02d",i);

        strPwd.Format("UserPwd%02d",i);

        xml.AddElem("User");

        xml.AddAttrib("UserID",strID);

        xml.AddAttrib("UserPwd",strPwd);

        xml.AddAttrib("UserLevel",nLevel);

    }

    xml.OutOfElem();

    xml.Save("UserInfo1.xml");



8。查找

CMarkup xml;

BOOL bLoad = false;

BOOL bFind = false;

bLoad = xml.Load("UserInfo1.xml");

    if (bLoad)

    {

        CString strID;

        CString strPwd;

        xml.ResetMainPos();

        xml.FindElem();   //UserInfo

        while (xml.FindChildElem("User"))

        {

              strID = xml.GetChildAttrib("UserID");

              strPwd = xml.GetChildAttrib("UserPwd");

              TRACE("\n----id:%s,pwd:%s-------\n",strID,strPwd);

              if (strID=="UserID00"&&strPwd=="UserPwd00")

              {

                  bFind = true;

                  break;

              }

        }

    }

    if (bFind)

    {

        TRACE("\n---- find------\n");

    }

    else

    {

        TRACE("\n----no find------\n");

    }



9。修改

CMarkup xml;

    BOOL bLoad = false;

    BOOL bFind = false;

    bLoad = xml.Load("UserInfo1.xml");

    if (bLoad)

    {

        CString strID;

        CString strPwd;

        xml.ResetMainPos();

        xml.FindElem();   //UserInfo

        while (xml.FindChildElem("User"))

        {

              strID = xml.GetChildAttrib("UserID");

              strPwd = xml.GetChildAttrib("UserPwd");

              TRACE("\n----id:%s,pwd:%s-------\n",strID,strPwd);

              if (strID=="UserID00"&&strPwd=="UserPwd00")

              {

                  bFind = true;

                  xml.SetChildAttrib("UserID",strID+CString("Modify"));

                  xml.Save("UserInfo1.xml");

                  break;

              }

        }

    }

    if (bFind)

    {

        TRACE("\n---- find------\n");

    }

    else

    {

        TRACE("\n----no find------\n");

    }
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载