gpt4 book ai didi

xml - 我需要帮助从 XML 读取状态字段

转载 作者:行者123 更新时间:2023-12-03 02:49:21 24 4
gpt4 key购买 nike

我需要使用 Delphi 7 读取此 XML 文本中的 status 字段。

此 XML 位于 TMemo 内:

<?xml version="1.0" encoding="UTF-8"?>
<licensecloud>
<request_id>665675780</request_id>
<request_timestamp>8/4/2018 15:47:44</request_timestamp>
<request_status>OK</request_status>
<error_num>0</error_num>
<error_msg></error_msg>
<error_desc></error_desc>
<license>
<key>a6gdfg567c79afd429d872d</key>
<dashed>A6589-dfg46D429-D872D</dashed>
<status>ACTIVE</status>
<trial>no</trial>
<expires/>

到目前为止,我这样做没有任何结果,我什么也没得到:

Uses XMLDoc, XMLIntf;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
XmlFile : TXMLDocument;
Doc: IXMLDocument;
MainNode, CustomerNode : IXMLNode;
i : Integer;
XMLPath : string;
begin
Doc := LoadXMLData(Memo1.Text);
try
// XmlFile.LoadFromFile(XMLPath);
Doc.Active := True;
MainNode := Doc.DocumentElement;

for i:=0 to MainNode.ChildNodes['licensecloud'].ChildNodes.Count-1 do
begin
CustomerNode := MainNode.ChildNodes['licensecloud'].ChildNodes[i];
//Here you can get any imformation
ShowMessage(CustomerNode.ChildNodes['status'].Text);

//ShowMessage(CustomerNode.ChildNodes['address_line_1'].Text);
end;
finally
FreeAndNil(XmlFile);
end;
end;

最佳答案

  1. 您的 xml 无效。缺少结束标记( </license></licensecloud> )。有效的 XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <licensecloud>
    <request_id>665675780</request_id>
    <request_timestamp>8/4/2018 15:47:44</request_timestamp>
    <request_status>OK</request_status>
    <error_num>0</error_num>
    <error_msg></error_msg>
    <error_desc></error_desc>
    <license>
    <key>a6gdfg567c79afd429d872d</key>
    <dashed>A6589-dfg46D429-D872D</dashed>
    <status>ACTIVE</status>
    </license>
    <trial>no</trial>
    <expires/>
    </licensecloud>
  2. 主节点是<licensecloud>MainNode.ChildNodes['licensecloud']是不正确的。正确代码:

    procedure TForm1.Button1Click(Sender: TObject);
    var
    XmlFile : TXMLDocument;
    Doc: IXMLDocument;
    MainNode, CustomerNode : IXMLNode;
    i : Integer;
    XMLPath : string;
    begin


    Doc := LoadXMLData(Memo1.Text);
    try
    // XmlFile.LoadFromFile(XMLPath);
    Doc.Active := True;
    MainNode := Doc.DocumentElement;

    ShowMessage(MainNode.ChildNodes['license'].ChildNodes['status'].Text);
    finally
    FreeAndNil(XmlFile);
    end;
    end;

关于xml - 我需要帮助从 XML 读取状态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51689666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com