【问题标题】:Create XML document using MSXML2_TLB使用 MSXML2_TLB 创建 XML 文档
【发布时间】:2021-05-09 03:10:27
【问题描述】:

我想在 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>

【问题讨论】:

  • 您可以将任何您想要的属性添加到 XML 节点,甚至是带有命名空间前缀的属性。在这种情况下,您只需添加一个名称为'xmlns:xsi' 和值'http://www.w3.org/2001/XMLSchema-instance' 的属性,以及另一个名称为'xsi:noNamespaceSchemaLocation' 和值'layout.xsd' 的属性。你这样做的实际问题是什么?请出示您的实际代码。

标签: delphi delphi-5 msxml2


【解决方案1】:

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

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);

【讨论】:

  • 如果您有新问题,请使用页面顶部的“”按钮将其作为一个问题发布,而不是将其放在您的答案中。
猜你喜欢
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
相关资源
最近更新 更多