gpt4 book ai didi

xml - 如何在Delphi 2009中解析此XML字符串?

转载 作者:行者123 更新时间:2023-12-03 18:55:43 28 4
gpt4 key购买 nike

这是XML字符串具有的信息。

<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/">
<statusInfo><vendorClaimID>BRADY12478018AETNA</vendorClaimID>
<statusID>0</statusID><statusDescription>Unvalidated</statusDescription>
</statusInfo></string>


但是,它就是这样来的。您必须向右滚动才能看到所有内容。

'<?xml version="1.0" encoding="utf-8"?>'#$D#$A'<string xmlns="http://tempuri.org/">&lt;statusInfo&gt;&lt;vendorClaimID&gt;BRADY12478018AETNA&lt;/vendorClaimID&gt;&lt;statusID&gt;0&lt;/statusID&gt;&lt;statusDescription&gt;Unvalidated&lt;/statusDescription&gt;&lt;/statusInfo&gt;</string>'


我已将字符串加载到XMLDoc中,但不知道如何从此处轻松访问值。

var
doc: IXMLDocument;


doc := LoadXMLData(xmlString);


谢谢!

最佳答案

您可以使用XPath提取节点的值

检查这个样本

{$APPTYPE CONSOLE}

{$R *.res}

uses
MSXML,
SysUtils,
ActiveX,
ComObj;


Const

XMLStr=
'<?xml version="1.0" encoding="UTF-8"?> '+
'<string xmlns="http://tempuri.org/">'+
' <statusInfo>'+
' <vendorClaimID>BRADY12478018AETNA</vendorClaimID> '+
' <statusID>0</statusID><statusDescription>Unvalidated</statusDescription> '+
' </statusInfo>'+
'</string> ';

procedure Test;
Var
XMLDOMDocument : IXMLDOMDocument;
XMLDOMNode : IXMLDOMNode;
begin
XMLDOMDocument:=CoDOMDocument.Create;
XMLDOMDocument.loadXML(XmlStr);
XMLDOMNode := XMLDOMDocument.selectSingleNode('//string/statusInfo/vendorClaimID');
if XMLDOMNode<>nil then
Writeln(Format('vendorClaimID %s',[String(XMLDOMNode.Text)]));

XMLDOMNode := XMLDOMDocument.selectSingleNode('//string/statusInfo/statusID');
if XMLDOMNode<>nil then
Writeln(Format('statusID %s',[String(XMLDOMNode.Text)]));

XMLDOMNode := XMLDOMDocument.selectSingleNode('//string/statusInfo/statusDescription');
if XMLDOMNode<>nil then
Writeln(Format('statusDescription %s',[String(XMLDOMNode.Text)]));
end;


begin
try
CoInitialize(nil);
try
Test;
finally
CoUninitialize;
end;
except
on E:EOleException do
Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
Writeln('Press Enter to exit');
Readln;
end.

关于xml - 如何在Delphi 2009中解析此XML字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707740/

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