找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 38|回复: 1

如何由IXmlNode*转为SXmlNode

[复制链接]
  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 74 天

    [LV.6]常住居民II

    104

    主题

    17

    回帖

    2252

    积分

    管理员

    积分
    2252
    发表于 2026-1-14 16:01:30 | 显示全部楼层 |阅读模式
    QQ图片20260114155952.png

    这个IXmlNode是咋使用的?  IXmlNode* pChild = pNode->FirstChild();  返回NULL

    【SOUI作者】启程软件 15:28:00
    我一般在代码里用SXmlNode node(ixmlnode),这样这个SXmlNode就和以前用的pugi::xml_node基本一样的用法了。
    你可能需要先适应一下这个变化。具体怎么用,可以参考swindow里的用法。
    这个IXmlNode主要是为了适配COM

    SXmlNode node(pNode);即可,不需要 SXmlNode node(&pNode);
  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 74 天

    [LV.6]常住居民II

    104

    主题

    17

    回帖

    2252

    积分

    管理员

    积分
    2252
     楼主| 发表于 2026-1-30 15:14:48 | 显示全部楼层
    pugi::xml_node xmlTemplate = xmlNode.child(L"template");
                            if(xmlTemplate)
                            {
                                    m_xmlTemplate.append_copy(xmlTemplate);
                                    {
                                            //创建一个定位器
                                            STileViewItemLocator* pItemLocator = new STileViewItemLocator(
                                                    SOUI::SStringT().Format(_T("%d"), it->second.first),
                                                    SOUI::SStringT().Format(_T("%d"), it->second.second),
                                                    m_nMarginSize);
                                            SetItemLocator(pItemLocator);
                                            pItemLocator->Release();
                                    }
                            }

    升级到SOUI5之后,写法如下
    IXmlNode* xmlTemplate = xmlNode.Child(L"template",FALSE);
                            if (xmlTemplate)
                            {
                                    m_xmlTemplate.Reset();
                                    m_xmlTemplate.root().append_copy(xmlTemplate);
                                    {
                                            //创建一个定位器
                                            STileViewItemLocator* pItemLocator = new STileViewItemLocator(this,
                                                    SOUI::SStringT().Format(_T("%d"), it->second.first),
                                                    SOUI::SStringT().Format(_T("%d"), it->second.second),
                                                    m_nMarginSize);
                                            SetItemLocator(pItemLocator);
                                            pItemLocator->Release();
                                    }

                            }
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|SOUI官方论坛

    GMT+8, 2026-3-6 12:07 , Processed in 0.078201 second(s), 24 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表