使用 MSXML2_TLB 创建 XML 文档

问题描述

我想在 delphi 5 中使用 MSXML2_TLB 创建一个 xml 文档。 输出应该在xml下面,知道怎么做吗?我被困在命名空间的第一行,其余的节点是我想出来的。

<Submission xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="layout.xsd">
    <T619>
        <trnmtr_nbr>SDX123654</trnmtr_nbr>
        <sbmt_ref_id>556452</sbmt_ref_id>
        <trnmtr_tcd>3</trnmtr_tcd>
        <summ_cnt>000001</summ_cnt>
        <TRNMTR_NM>
            <l1_nm>Test Company</l1_nm>
        </TRNMTR_NM>
        <TRNMTR_ADDR>
            <addr_l1_txt>470 Nowhere RD</addr_l1_txt>
            <cty_nm>Toronto</cty_nm>
            <prov_cd>ON</prov_cd>
            <cntry_cd>CAN</cntry_cd>
            <pstl_cd>M112YY</pstl_cd>
        </TRNMTR_ADDR>
        <CNTC>
            <cntc_nm>Jhon Doe</cntc_nm>
            <cntc_area_cd>905</cntc_area_cd>
            <cntc_phn_nbr>555-5555</cntc_phn_nbr>
        </CNTC>
        <rpt_tcd>O</rpt_tcd>
        <lang_cd>E</lang_cd>
    </T619>
<Submission>

解决方法

非常感谢您的帮助,我可以使用以下代码添加属性:

FDoc := CoDOMDocument30.Create();
FDoc.Async := false;
FSubmission := FDoc.CreateElement('Submission');
FAttr := FDoc.CreateAttribute('xmlns:xsi');
FAttr.Value := 'http://www.w3.org/2001/XMLSchema-instance';
FSubmission.Attributes.SetNamedItem(FAttr);
FAttr := FDoc.CreateAttribute('xsi:noNamespaceSchemaLocation');
FAttr.Value := 'layout-topologie.xsd';
FSubmission.Attributes.SetNamedItem(FAttr);
FDoc.AppendChild(FSubmission);