BCB6无XMLDOC控件下生成及保存XML文件

某个项目需要将数据保存为XML文件,但是BCB6没安装XMLDOC,想下载安装包也难找,于是就在网上查了些资料,不使用XMLDOC的情况下生成和保存XML文件。

包含头文件:

#include <XMLDoc.hpp>

#pragma link "xmlrtl.lib"

代码:

    AnsiString gkstr = "";
    gkstr = edtGkbh->Text.Trim();
    if (gkstr != ""){
        cxQry->SQL->Text = "select pmggmc,ysmc,rzsk,gkbh,wkgs,bpbh,fk,mz,bcdd,bzbz,"
                            "CONVERT(varchar(100),GETDATE(),11) as bzrq from ccck "
                            " with(nolock) where gkbh='"+gkstr+"' order by cast(bpbh as int)";
        cxQry->Open();
        cxQry->First();
        for (int i=0;i<cxQry->RecordCount;i++){
            //创建XML
            _di_IXMLDocument xml= NewXMLDocument(L"1.0");
            xml->Active= true;
            xml->Options = xml->Options << doNodeAutoIndent;

            _di_IXMLNode root = xml->AddChild("barcode");
            //root->Attributes["version"]="1.0";
            //root->Attributes["name"]="PathConfig";
            //创建XML节点
            root->AddChild("TemplateNumber");
            root->AddChild("ProductName");
            root->AddChild("ColorCode");
            root->AddChild("ColorNumber");
            root->AddChild("BatchNo");
            root->AddChild("Quantity");
            root->AddChild("ProductUnit");
            root->AddChild("VolumeNumber");
            root->AddChild("Breadth");
            root->AddChild("Grammage");
            root->AddChild("Composition");
            root->AddChild("DateMark");
            root->AddChild("OrderNumber");
            root->AddChild("FirstRemark");
            root->AddChild("Remark");

            //对节点赋值
            AnsiString str = "";
            _di_IXMLNode node = root->ChildNodes->FindNode(WideString("TemplateNumber"));
            str = "001";
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("ProductName"));
            str = cxQrypmggmc->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("ColorCode"));
            str = cxQryysmc->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("ColorNumber"));
            str = cxQryrzsk->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("BatchNo"));
            str = cxQrygkbh->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("Quantity"));
            str = cxQrywkgs->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("ProductUnit"));
            str = "KG";
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("VolumeNumber"));
            str = cxQrybpbh->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("Breadth"));
            str = cxQryfk->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("Grammage"));
            str = cxQrymz->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("Composition"));
            str = "";
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("DateMark"));
            str = cxQrybzrq->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("OrderNumber"));
            str = cxQrybcdd->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("FirstRemark"));
            str = cxQrybzbz->AsString.Trim();
            node->SetNodeValue(str);
            node = root->ChildNodes->FindNode(WideString("Remark"));
            str = "";
            node->SetNodeValue(str);

            //保存XML
            xml->SaveToFile("config.xml");
            //释放
            delete xml;
            cxQry->Next();
        }
        ShowMessage("XML文件生成完毕!");
    }

 

生成的XML文件格式如下:

<?xml version="1.0"?>
<barcode>
  <TemplateNumber>001</TemplateNumber>
  <ProductName>32S棉2*2罗纹</ProductName>
  <ColorCode>068#大红</ColorCode>
  <ColorNumber>LC03939</ColorNumber>
  <BatchNo>YZ019112331</BatchNo>
  <Quantity>21.6</Quantity>
  <ProductUnit>KG</ProductUnit>
  <VolumeNumber>15</VolumeNumber>
  <Breadth></Breadth>
  <Grammage></Grammage>
  <Composition></Composition>
  <DateMark>19/12/07</DateMark>
  <OrderNumber>YZ191123051</OrderNumber>
  <FirstRemark>万邦A4</FirstRemark>
  <Remark></Remark>
</barcode>
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值