使用OpenXML将XML数据提取到SQL Server

时间:2018-08-20 23:58:34

标签: openxml

我有一个XML,希望它可以在SQL Server中使用OpenXML提取。我尝试了很多事情,但未能提取数据。我从OData服务获得此响应。下面是示例XML:

<?xml version='1.0' encoding='UTF-8'?>
<feed xml:base="https://test.com/odata/ODATA_Loan/" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns="http://www.w3.org/2005/Atom">
    <id>https://test.com/odata/ODATA_Loan/Loan</id>
    <title>Loan</title>
    <updated>2018-08-20T23:04:53.267Z</updated>
    <link href="Loan" rel="self" title="Loan" />
    <entry>
        <id>https://test.com/odata/ODATA_Loan/Loan(16325548649220349)</id>
        <category term="DefaultNamespace.Loan" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <title></title>
        <updated>1970-01-01T00:00:00.000Z</updated>
        <content type="application/xml">
            <m:properties>
                <d:ID m:type="Edm.Int64">16325548649220349</d:ID>
                <d:createdDate m:type="Edm.DateTimeOffset">2018-08-17T20:32:22.805Z</d:createdDate>
                <d:KCCLoanNumber m:type="Edm.Int64">12004</d:KCCLoanNumber>
                <d:SellerLoanID m:type="Edm.String">27527699</d:SellerLoanID>
                <d:BrokerLoanID m:type="Edm.String">1704311025</d:BrokerLoanID>
                <d:FHACASE m:type="Edm.String" m:null="true" />
                <d:PoolCategory m:type="Edm.String" m:null="true" />
                <d:DataDate m:type="Edm.DateTimeOffset">2018-01-31T08:00:00.000Z</d:DataDate>
                <d:RateCurrent m:type="Edm.Decimal">0</d:RateCurrent>
                <d:RateCurrentARMFIX m:type="Edm.Decimal">0.04</d:RateCurrentARMFIX>
                <d:ARMDescription m:type="Edm.String" m:null="true" />
                <d:ARMCeilingRate m:type="Edm.Decimal" m:null="true" />
                <d:ARMFloorRate m:type="Edm.Decimal" m:null="true" />
                <d:ARMIndex m:type="Edm.String" m:null="true" />
                <d:ARMInitialAdjCap m:type="Edm.Decimal" m:null="true" />
                <d:ARMInitialRateResetPeriod m:type="Edm.DateTimeOffset" m:null="true" />
                <d:ARMMargin m:type="Edm.Decimal" m:null="true" />
                <d:ARMNextRateResetDate m:type="Edm.DateTimeOffset" m:null="true" />
                <d:ARMSubseqAdjCap m:type="Edm.Decimal" m:null="true" />
                <d:ARMSubseqRateResetPeriod m:type="Edm.Int64" m:null="true" />
                <d:PAYOPTFlag m:type="Edm.String">N/A</d:PAYOPTFlag>
                <d:PAYOPTInitialMinPaymentRate m:type="Edm.String">N/A</d:PAYOPTInitialMinPaymentRate>
                <d:PAYOPTInitialRateResetMonth m:type="Edm.String">N/A</d:PAYOPTInitialRateResetMonth>
                <d:PAYOPTInitialRecastMonth m:type="Edm.String">N/A</d:PAYOPTInitialRecastMonth>
                <d:PAYOPTSubseqRecastMonth m:type="Edm.String">N/A</d:PAYOPTSubseqRecastMonth>
                <d:PAYOPTNEGAMCAP m:type="Edm.String">N/A</d:PAYOPTNEGAMCAP>
                <d:BalloonFlag m:type="Edm.Boolean">false</d:BalloonFlag>
                <d:BKCount m:type="Edm.Int64" m:null="true" />
                <d:BKChapter m:type="Edm.String" m:null="true" />
                <d:BKFilingDate m:type="Edm.DateTimeOffset" m:null="true" />
                <d:BKResolutionDate m:type="Edm.DateTimeOffset" m:null="true" />
                <d:BKResolutionType m:type="Edm.String" m:null="true" />
                <d:IsBKCramdown m:type="Edm.String">No</d:IsBKCramdown>
                <d:FICOCurrent m:type="Edm.Int64">628</d:FICOCurrent>
                <d:FICOCurrentDate m:type="Edm.DateTimeOffset">2016-06-10T07:00:00.000Z</d:FICOCurrentDate>
                <d:FRCLSALEDATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:FRCLFIRSTLEGALACTION m:type="Edm.DateTimeOffset">2016-06-27T07:00:00.000Z</d:FRCLFIRSTLEGALACTION>
                <d:FRCLREFERTOATTORNEYDATE m:type="Edm.DateTimeOffset">2016-04-29T07:00:00.000Z</d:FRCLREFERTOATTORNEYDATE>
                <d:FRCLJUDGMENTDATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:FRCLREFERRALHOLD m:type="Edm.Boolean">false</d:FRCLREFERRALHOLD>
                <d:FRCLSALEHOLD m:type="Edm.Boolean">true</d:FRCLSALEHOLD>
                <d:UPBMONTHEND m:type="Edm.Decimal">337165.6</d:UPBMONTHEND>
                <d:PANDICURRENT m:type="Edm.Decimal">1001.64</d:PANDICURRENT>
                <d:TaxAndInsuranceAmount m:type="Edm.Decimal">0</d:TaxAndInsuranceAmount>
                <d:TotalPaymentAmount m:type="Edm.Decimal">0</d:TotalPaymentAmount>
                <d:SuspenseBalance m:type="Edm.Decimal">1399.74</d:SuspenseBalance>
                <d:ForbearanceAmount m:type="Edm.Decimal">102712.24</d:ForbearanceAmount>
                <d:NEXTDUEDATE m:type="Edm.DateTimeOffset">2015-04-01T07:00:00.000Z</d:NEXTDUEDATE>
                <d:PAYSTRING m:type="Edm.String">000000000011</d:PAYSTRING>
                <d:MODTYPE m:type="Edm.String">MOD1</d:MODTYPE>
                <d:MODMHASTATUS m:type="Edm.String">PRIOR</d:MODMHASTATUS>
                <d:MODMHAEXITDATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:MODMHAEXITCODE m:type="Edm.String">Undefined value</d:MODMHAEXITCODE>
                <d:MODPREMODUPB m:type="Edm.Decimal">256191.42</d:MODPREMODUPB>
                <d:MODPREMODPMT m:type="Edm.Decimal">0</d:MODPREMODPMT>
                <d:PostModificationUPB m:type="Edm.Decimal">239661.89</d:PostModificationUPB>
                <d:MODPOSTMODPMT m:type="Edm.Decimal">1001.64</d:MODPOSTMODPMT>
                <d:MODPREMODRATE m:type="Edm.Decimal">0</d:MODPREMODRATE>
                <d:MODPOSTMODRATE m:type="Edm.Decimal">4</d:MODPOSTMODRATE>
                <d:MODFORGIVEAMOUNT m:type="Edm.String">N/A</d:MODFORGIVEAMOUNT>
                <d:MODFORGIVENESSTERM m:type="Edm.String">N/A</d:MODFORGIVENESSTERM>
                <d:MATURITYDATE m:type="Edm.DateTimeOffset">2053-05-01T07:00:00.000Z</d:MATURITYDATE>
                <d:INTONLYSTATUS m:type="Edm.Boolean">false</d:INTONLYSTATUS>
                <d:InterestOnlyExpireDate m:type="Edm.DateTimeOffset" m:null="true" />
                <d:PRININTEFFECTIVEDATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:ORIGAMORTTERM m:type="Edm.Int64">360</d:ORIGAMORTTERM>
                <d:ORIGFICO m:type="Edm.Int64">655</d:ORIGFICO>
                <d:ORIGLTV m:type="Edm.Int64">70</d:ORIGLTV>
                <d:ORIGCLTV m:type="Edm.Int64">0</d:ORIGCLTV>
                <d:NOTEDATE m:type="Edm.DateTimeOffset">2007-05-25T07:00:00.000Z</d:NOTEDATE>
                <d:ORIGMARKETVAL m:type="Edm.Decimal">375000</d:ORIGMARKETVAL>
                <d:ORIGPandI m:type="Edm.Decimal">1702.57</d:ORIGPandI>
                <d:ORIGUPB m:type="Edm.Decimal">262500</d:ORIGUPB>
                <d:OriginalInterestRate m:type="Edm.Decimal">0.0675</d:OriginalInterestRate>
                <d:LIENPOSITION m:type="Edm.String">1ST MORTGAGE</d:LIENPOSITION>
                <d:REPURCHDATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:REPURCHFINDING m:type="Edm.String">N/A</d:REPURCHFINDING>
                <d:MIACTIVEFLAG m:type="Edm.String" m:null="true" />
                <d:MERSREGISTRATIONSTATUS m:type="Edm.String">NOT REGISTERED</d:MERSREGISTRATIONSTATUS>
                <d:MERSORIGINATEDFLAG m:type="Edm.String"></d:MERSORIGINATEDFLAG>
                <d:MERSMIN m:type="Edm.String">100258910070320434</d:MERSMIN>
                <d:LATECHARGEACCRUED m:type="Edm.Decimal">200.6</d:LATECHARGEACCRUED>
                <d:ESCROWBAL m:type="Edm.Decimal">0</d:ESCROWBAL>
                <d:ESCROWADVBAL m:type="Edm.Decimal">7542.88</d:ESCROWADVBAL>
                <d:CORPORATEADVEXCL m:type="Edm.Decimal">1587</d:CORPORATEADVEXCL>
                <d:CORPORATEADVINCL m:type="Edm.Decimal">4695</d:CORPORATEADVINCL>
                <d:InvestorRecoverableCorporateAdvances m:type="Edm.Decimal">0</d:InvestorRecoverableCorporateAdvances>
                <d:BorrowerRecoverableCorporateAdvances m:type="Edm.Decimal">0</d:BorrowerRecoverableCorporateAdvances>
                <d:NonRecoverableCorporateAdvances m:type="Edm.Decimal">0</d:NonRecoverableCorporateAdvances>
                <d:ProductLine m:type="Edm.String">Fixed Interest Mortgage</d:ProductLine>
                <d:STEP1RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP1DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP2RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP2DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP3RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP3DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP4RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP4DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP5RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP5DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP6RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP6DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP7RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP7DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP8RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP8DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP9RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP9DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP10RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP10DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:STEP11RATE m:type="Edm.Decimal" m:null="true" />
                <d:STEP11DATE m:type="Edm.DateTimeOffset" m:null="true" />
                <d:DaysDelinquentMBA360 m:type="Edm.Int64">660</d:DaysDelinquentMBA360>
                <d:REOStatus m:type="Edm.String" m:null="true" />
                <d:ForeclosureStatus m:type="Edm.String">FCL</d:ForeclosureStatus>
                <d:BKStatus m:type="Edm.String" m:null="true" />
                <d:LossMitigationFlag m:type="Edm.String">Yes</d:LossMitigationFlag>
                <d:DoNotContactStatusCode m:type="Edm.String" m:null="true" />
                <d:Current_UPB m:type="Edm.Decimal">0</d:Current_UPB>
                <d:Current_Scheduled_PI_Payment m:type="Edm.Decimal">0</d:Current_Scheduled_PI_Payment>
                <d:Current_Interest_Rate m:type="Edm.Decimal">0.04</d:Current_Interest_Rate>
                <d:Paid_To_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Amount_Last_Paid m:type="Edm.Decimal">0</d:Amount_Last_Paid>
                <d:Paid_Last_Twelve_Months m:type="Edm.Decimal">0</d:Paid_Last_Twelve_Months>
                <d:Escrow_Balance m:type="Edm.Decimal">0</d:Escrow_Balance>
                <d:Fixed_Variable m:type="Edm.String" m:null="true" />
                <d:Origination_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Original_Balance m:type="Edm.Decimal">0</d:Original_Balance>
                <d:First_Payment_Date m:type="Edm.DateTimeOffset">2007-07-01T07:00:00.000Z</d:First_Payment_Date>
                <d:Maturity m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Original_Term m:type="Edm.Int64">360</d:Original_Term>
                <d:Remaining_Term m:type="Edm.Int64">0</d:Remaining_Term>
                <d:Payment_Frequency m:type="Edm.String" m:null="true" />
                <d:Modification_Date m:type="Edm.DateTimeOffset">2013-03-04T08:00:00.000Z</d:Modification_Date>
                <d:Modification_First_Pay_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Note m:type="Edm.String" m:null="true" />
                <d:Mortgage m:type="Edm.String" m:null="true" />
                <d:Title m:type="Edm.String" m:null="true" />
                <d:Title_Held m:type="Edm.String" m:null="true" />
                <d:Sub_Lien m:type="Edm.String" m:null="true" />
                <d:Sub_Lien_Amount m:type="Edm.Decimal">0</d:Sub_Lien_Amount>
                <d:Original_Appraisal_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Original_Appraisal_Value m:type="Edm.String" m:null="true" />
                <d:Original_LTV m:type="Edm.Decimal">0</d:Original_LTV>
                <d:Sale_Price m:type="Edm.Decimal">0</d:Sale_Price>
                <d:Loan_Purpose m:type="Edm.String">REFINANCE/EQUITY TAKEOUT</d:Loan_Purpose>
                <d:Borrower1_Original_Credit_Score1 m:type="Edm.Int64">0</d:Borrower1_Original_Credit_Score1>
                <d:Borrower1_Original_Credit_Score2 m:type="Edm.Int64">0</d:Borrower1_Original_Credit_Score2>
                <d:Borrower1_Original_Credit_Score3 m:type="Edm.Int64">0</d:Borrower1_Original_Credit_Score3>
                <d:Borrower1_Current_Credit_Score1 m:type="Edm.Int64">0</d:Borrower1_Current_Credit_Score1>
                <d:Borrower1_Current_Credit_Score2 m:type="Edm.Int64">0</d:Borrower1_Current_Credit_Score2>
                <d:Borrower1_Current_Credit_Score3 m:type="Edm.Int64">0</d:Borrower1_Current_Credit_Score3>
                <d:Borrower1_Current_Average_Credit_Score m:type="Edm.Int64">0</d:Borrower1_Current_Average_Credit_Score>
                <d:Credit_Date_Original m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Credit_Date_Current m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Borrower_Current_Income m:type="Edm.Int64">0</d:Borrower_Current_Income>
                <d:Borrower_Current_Income_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Backend_Ratio m:type="Edm.Decimal">0</d:Backend_Ratio>
                <d:Frontend_Ratio m:type="Edm.Decimal">0</d:Frontend_Ratio>
                <d:Backend_Ratio_LossMit m:type="Edm.Decimal">0</d:Backend_Ratio_LossMit>
                <d:Frontend_Ratio_LossMit m:type="Edm.Decimal">0</d:Frontend_Ratio_LossMit>
                <d:Latest_Underwriting_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Employment m:type="Edm.String" m:null="true" />
                <d:Employment_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Not_Intnt m:type="Edm.String" m:null="true" />
                <d:Date_Intnt m:type="Edm.DateTimeOffset" m:null="true" />
                <d:T_Foreclose m:type="Edm.Int64">0</d:T_Foreclose>
                <d:Date_Foreclosure_Initiate m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Unapplied_Funds m:type="Edm.Decimal">0</d:Unapplied_Funds>
                <d:Insurance_Proceeeds m:type="Edm.String" m:null="true" />
                <d:File_Referred_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:First_Action_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Service_Complete m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Judgment_Entered m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Sale_Scheduled m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Hold_Description m:type="Edm.String" m:null="true" />
                <d:Reason_For_Default m:type="Edm.String" m:null="true" />
                <d:Servicer m:type="Edm.String" m:null="true" />
                <d:Borrower_Type m:type="Edm.String" m:null="true" />
                <d:Originator m:type="Edm.String" m:null="true" />
                <d:Current_BPO_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:BPO_Property_Type m:type="Edm.String" m:null="true" />
                <d:BPO_Property_Condition m:type="Edm.String" m:null="true" />
                <d:BPO_Occupancy m:type="Edm.String" m:null="true" />
                <d:BPO_Location m:type="Edm.String" m:null="true" />
                <d:BPO_Neighborhood m:type="Edm.String" m:null="true" />
                <d:BPO_Neighborhood_Value_Trend m:type="Edm.String" m:null="true" />
                <d:BPO_Market_Time m:type="Edm.String" m:null="true" />
                <d:BPO_Square_Feet_GLA m:type="Edm.Int64">0</d:BPO_Square_Feet_GLA>
                <d:BPO_Square_Feet_Below_Grade m:type="Edm.Int64">0</d:BPO_Square_Feet_Below_Grade>
                <d:BPO_Bedrooms m:type="Edm.String" m:null="true" />
                <d:BPO_Bathrooms m:type="Edm.String" m:null="true" />
                <d:BPO_Year_Built m:type="Edm.Int64">0</d:BPO_Year_Built>
                <d:BPO_Value m:type="Edm.Int64">0</d:BPO_Value>
                <d:BPO_90_Day_Marketing_Value m:type="Edm.Int64">0</d:BPO_90_Day_Marketing_Value>
                <d:BPO_120_Day_Marketing_Value m:type="Edm.Int64">0</d:BPO_120_Day_Marketing_Value>
                <d:BPO_180_Day_Marketing_Value m:type="Edm.Int64">0</d:BPO_180_Day_Marketing_Value>
                <d:BPO_For_Sale m:type="Edm.String" m:null="true" />
                <d:BPO_Comments m:type="Edm.String" m:null="true" />
                <d:Comp1_Address m:type="Edm.String" m:null="true" />
                <d:Comp1_Bedrooms m:type="Edm.Int64">0</d:Comp1_Bedrooms>
                <d:Comp1_Bathrooms m:type="Edm.Decimal">0</d:Comp1_Bathrooms>
                <d:Comp1_Square_Feet_GLA m:type="Edm.Int64">0</d:Comp1_Square_Feet_GLA>
                <d:Comp1_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Comp1_Price m:type="Edm.Int64">0</d:Comp1_Price>
                <d:Comp2_Address m:type="Edm.String" m:null="true" />
                <d:Comp2_Bedrooms m:type="Edm.Int64">0</d:Comp2_Bedrooms>
                <d:Comp2_Bathrooms m:type="Edm.Decimal">0</d:Comp2_Bathrooms>
                <d:Comp2_Square_Feet_GLA m:type="Edm.String" m:null="true" />
                <d:Comp2_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Comp2_Price m:type="Edm.Int64">0</d:Comp2_Price>
                <d:Comp3_Address m:type="Edm.String" m:null="true" />
                <d:Comp3_Bedrooms m:type="Edm.Int64">0</d:Comp3_Bedrooms>
                <d:Comp3_Bathrooms m:type="Edm.Decimal">0</d:Comp3_Bathrooms>
                <d:Comp3_Square_Feet_GLA m:type="Edm.Int64">0</d:Comp3_Square_Feet_GLA>
                <d:Comp3_Date m:type="Edm.DateTimeOffset" m:null="true" />
                <d:Comp3_Price m:type="Edm.Int64">0</d:Comp3_Price>
                <d:Servicer_Occupancy m:type="Edm.String" m:null="true" />
                <d:Loan_SellerPool m:type="Edm.Int64">23643898043695305</d:Loan_SellerPool>
                <d:TitleReview_Loan m:type="Edm.Int64" m:null="true" />
                <d:ValueReview_Loan m:type="Edm.Int64" m:null="true" />
                <d:CreditReview_Loan m:type="Edm.Int64" m:null="true" />
                <d:ComplianceReview_Loan m:type="Edm.Int64" m:null="true" />
                <d:CollateralReview_Loan m:type="Edm.Int64" m:null="true" />
                <d:Loan_KCCPool m:type="Edm.Int64">3377699720528074</d:Loan_KCCPool>
                <d:Loan_Property m:type="Edm.Int64">19984723346456577</d:Loan_Property>
                <d:Tag_Loan m:type="Edm.Int64" m:null="true" />
            </m:properties>
        </content>
    </entry>   
</feed>

我想捕获所有内容,尤其是“ entry”标签内的所有属性。 我尝试使用各种OpenXML变体,但没有一个适合我。大家的帮助将不胜感激。

0 个答案:

没有答案