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上测试通过
  • 相关阅读:
    Firemonkey 控件设定字型属性及颜色
    ListView 使用 LiveBindings 显示超过 200 条记录
    Firemonkey ListView 获取项目右方「>」(Accessory) 事件
    XE7 Update 1 选 iOS 8.1 SDK 发布 iPhone 3GS 实机测试
    Firemonkey Bitmap 设定像素颜色 Pixel
    Firemonkey 移动平台 Form 显示使用 ShowModal 范例
    XE7 提交 App(iOS 8)提示「does not contain the correct beta entitlement」问题修复
    XE7 Android 中使用 MessageDlg 范例
    导出 XE6 预设 Android Style (*.style) 档案
    修正 Memo 設定為 ReadOnly 後, 無法有複製的功能
  • 原文地址:https://www.cnblogs.com/zziss/p/1778330.html
Copyright © 2011-2022 走看看