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上测试通过
  • 相关阅读:
    【转】JSON.parse() Unexpected token i in JSON at position 2 报错问题
    修改json对象的每一个值
    浏览器各个版本和系统(chrome/safari/edge/qq/360)
    数据库书籍推荐排行榜
    git-将dev代码合并到test
    npm install报错
    slice()和splice()区别
    在Eclipse中使用JUnit4进行单元测试(初级篇)
    [转载]Jmeter那点事·ForEach和If控制器
    java语言写文件内容
  • 原文地址:https://www.cnblogs.com/zziss/p/1778330.html
Copyright © 2011-2022 走看看