XPath Delphi使用MSXML

Dan*_*ael -1 xml delphi xsd

这是我的第一篇文章,我有这种情况:如何使用MSXML从xsd模式文件中获取属性?这是可能的,或者我需要另一种方式.我正在使用Delphi和MSXML 6.0.

kob*_*bik 8

您可以使用以下方式读取xsd架构文件IXMLDOMDocument.这是一个例子:(
该示例使用此XML Schema)

uses ComObj, MSXML;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  xmlDoc: IXMLDOMDocument;
  node: IXMLDomNode;      
begin
  xmlDoc := CreateOleObject('Microsoft.XMLDOM') as IXMLDOMDocument;
  xmlDoc.async := False;
  xmlDoc.load('C:\po.xsd');
  if xmlDoc.parseError.errorCode <> 0 then
    raise Exception.Create('XML Load error:' + xmlDoc.parseError.reason);
  node := xmlDoc.selectSingleNode('//xsd:schema/xsd:element[@name="purchaseOrder"]');
  ShowMessage(node.attributes.getNamedItem('type').text); // "PurchaseOrderType"
end;
Run Code Online (Sandbox Code Playgroud)