zoukankan      html  css  js  c++  java
  • symbian 创建 xml

    Symbian (Generate XML  CSenDomFragment)生成XML

    XML解析是我们项目中经理要遇到的问题.
    即然有XML解析当然就少不了XML的生成了.
    今天我们来看看XML是如何生成的.

    其实XML的生成有简单的办法我们可以自己去按格式生成.
    当然系统也给我们提供了API供我们生成XML.
    那就让我们看看如何处理吧.
    继续SYMBIAN之路,留下脚印做个备忘了.嘎嘎!!!


    //生成XML的系统方法

        CSenDomFragment* pSenDomFragment = CSenDomFragment::NewL(_L8("Mark15021"));
        
        //生成一个结点
        CSenElement* Root = pSenDomFragment->AsElement().CreateElementL(_L8(""),_L8("Root"));
        //set its attribute
        Root->AddAttrL(_L8("width"),_L8("50"));
        Root->AddAttrL(_L8("height"),_L8("50"));

        //生成结点
        CSenElement* Child1 = pSenDomFragment->AsElement().CreateElementL(_L8(""),_L8

    ("Mark1"));
        Child1->AddAttrL(_L8("name"),_L8("Mark15021"));
        Child1->AddAttrL(_L8("surname"),_L8("Mark15021"));
        Child1->AddAttrL(_L8("author"),_L8("Mark15021"));
        
        
        //生成结点
        CSenElement* Child2 = pSenDomFragment->AsElement().CreateElementL(_L8(""),_L8

    ("Mark2"));
        Child2->AddAttrL(_L8("name"),_L8("Mark15021"));
        Child2->AddAttrL(_L8("surname"),_L8("Mark15021"));
        Child2->AddAttrL(_L8("author"),_L8("Mark15021"));
            
        // create child tag
        CSenElement* Child3 = pSenDomFragment->AsElement().CreateElementL(_L8(""),_L8

    ("Date"));
        TPtrC8 SetxmlParam1Content = Child3->SetContentL(_L8("Monday, January 01, 2010"));

        //setting parent node and transfering ownership.
        //指定结点之间的关系
        CSenElement& Child11 = Root->AddElementL(*Child1);
        CSenElement& Child21 = Root->AddElementL(*Child2);
        CSenElement& Child31 = Root->AddElementL(*Child3);
        
        RFile file;

        //生成XML文件
        if (KErrNone != file.Open(aFs, _L("c:\\data\\MarkXML"), EFileWrite))            

            file.Replace(aFs, _L("c:\\data\\MarkXML"), EFileWrite);

        //设置XML编码格式
        //可以生成unicode和ascall格式的XML
        HBufC8* xml = Root->AsXmlL();

        if(xml)
            file.Write(xml->Des());
        file.Close();  
        
        delete xml;
        delete pSenDomFragment;
        delete Root;

    //生成XML的土方法

    TBuf8 <128> startBuf;
    startBuf.Append(_L8("<?xml version=\"1.0\" encoding=\"utf-8\"?>"));
    startBuf.Append(_L8("\r\n<xml>"));
    //xml trail
    TBuf8 <32> endBuf;
    endBuf.Append(_L8("\r\n</xml>"));

    _LIT8(KTypeFormat,"<Type>%d</Type>");
    _LIT8(KTrueNameFormat,"<Name>%S</Name>");

    bufType.AppendFormat(KTypeFormat,iType);
    ////get name
    bufTrueName.AppendFormat(KTrueNameFormat,&bufName);

    //生成XML头
    err = file.Write(startBuf);
    err = file.Write(_L8("\r\n"));
    //生成XML数据
    err = file.Write(bufType);
    err = file.Write(_L8("\r\n"));
    err = file.Write(bufName);
    //生成XML文件尾
    err = file.Write(endBuf);

    以上代码在N95上测试通过
  • 相关阅读:
    PHPLIB Template入门系列 4 模板嵌套
    jQuery 实例
    建立PHP的本地调试环境
    PHP缓存memcache简单应用
    PHP程序:虚拟域名服务DIY
    去掉网络共享的session
    C# 里EF 对Mysql DB更新,乱码
    sshd的log的位置
    cURL 访问https失败
    Eclipse中编辑properties文件的编码问题
  • 原文地址:https://www.cnblogs.com/zziss/p/1778330.html
Copyright © 2011-2022 走看看