<?xml version="1.0" encoding="GB2312"?>
<SCHEMA NAME="JDCFPQD" CHSNAME="机动车销售发票清单" SSSQ="200506" CRC="JDCFPQD200506_2_CRC.xml">
<TAXPAYER SWSBH="2" NSRMC="1" SBRQ="2005-6-28" RECORDCOUNT="3" CJLX="CGCL" CJRDM="" CJRMC="">
<Records>
<record FPDM="000000000122" FPHM="00000001" JFPHM="" CPXH="1" CLSBH="11111111111111111" KPJE="4"/>
<record FPDM="000000000122" FPHM="00000002" JFPHM="" CPXH="1" CLSBH="11111111111111111" KPJE="4"/>
<record FPDM="000000000122" FPHM="00000004" JFPHM="" CPXH="1" CLSBH="11111111111111111" KPJE="1"/>
</Records>
</TAXPAYER>
</SCHEMA>
怎么取对应的值

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        RootNode, ParentNode, ChildNode,node: IXMLNode;
        i,j,t,m: integer; //循环变量
        myXMLDoc: IXMLDocument; //接口
        str1,str2,str3,str4 : string;begin
        InXMLDoc.LoadFromFile('c:\a.xml');  // InXMLDoc : TXMLDocument 
        RootNode := InXMLDoc.DocumentElement;
        str1 := RootNode.GetAttribute('NAME');
        str2 := RootNode.GetAttribute('CHSNAME');
        str3 := RootNode.GetAttribute('SSSQ');
        str4 := RootNode.GetAttribute('CRC');
        Memo1.Lines.Add(str1 +'--'+str2+'--'+str3+'--'+str4);
        ParentNode := RootNode.ChildNodes.First;
        for j := 0 to ParentNode.AttributeNodes.Count- 1 do
        begin
            Memo1.Lines.Add(ParentNode.AttributeNodes[j].NodeName+' = ' +ParentNode.AttributeNodes[j].NodeValue);
        end;
        ChildNode := ParentNode.ChildNodes.First;
        node := ChildNode.ChildNodes.First;
        while (node <> nil) do
        begin
            for j := 0 to node.AttributeNodes.Count- 1 do
            begin
                Memo1.Lines.Add(node.AttributeNodes[j].NodeName+' = ' +node.AttributeNodes[j].NodeValue);
            end;
            node := node.NextSibling;
        end;
    end;
    //////////////////////////
    写的乱自己参考一下。注意一些逻辑判断
      

  2.   

    for j := 0 to node.AttributeNodes.Count- 1 do
    begin
        Memo1.Lines.Add(node.AttributeNodes[j].NodeName+' = ' +node.AttributeNodes[j].NodeValue);
    end;
    //  NodeName 就是 record 中的 FPDM  FPHM  JFPHM CPXH CLSBH KPJE
    NodeValue   就是他们的值