0

XML ファイルを解析し、データを vb.net の SQL サーバーに保存する必要があります。私はオンラインで読んでいますが、xmltextReader クラスを使用してファイルを読み取る必要があるようです。これにより、メモリ不足の問題が解消されるからです。私は次のようなものを始めました。私はうまくやっているのか、それとももっと簡単な他の方法を使うべきなのかについてのフィードバックが必要です. サンプル XML ファイルは次のようになります

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MainElement>
    <MainEle1>
        <InfoA>
            <InfoAId>121480431A</InfoAId>
            <firstName>Anne</firstName>
            <lastName>Stevens</lastName>
            <phone>6023122456</phone>
            <address>
                <address1>8735 Elm Road</address1>
                <address2></address2>
                <city>Nowhere</city>
                <country></country>
                <state>CA</state>
                <suite></suite>
                <zipCode>30141</zipCode>
            </address>
            <dob>09/08/1982</dob>
            <gender></gender>
            <primaryLanguage>Other</primaryLanguage>
            <otherLanguage>french</otherLanguage>
            <planName></planName>
            <contacts>
                <firstName>rajesh</firstName>
                <lastName>raj</lastName>
                <phone>1232343241</phone>
                <address>
                    <address1></address1>
                    <address2></address2>
                    <city></city>
                    <country></country>
                    <state></state>
                    <suite></suite>
                    <zipCode></zipCode>
                </address>
                <contactType>EMERGENCY</contactType>
                <relationship>friend</relationship>
                <typeDesc>Emergency Contact/Next of Kin</typeDesc>
            </contacts>
         </InfoA>
    </MainEle1>
    <MainEle2>
        <subMainEle2>
            <firstName>victor</firstName>
            <lastName>john</lastName>
            <phone>1233455678</phone>
            <address>
                <address1>123 arrow</address1>
                <address2></address2>
                <city>upland</city>
                <country></country>
                <state>ca</state>
                <suite>234</suite>
                <zipCode>76547</zipCode>
            </address>
            <contactType>PRIMARY</contactType>
            <relationship></relationship>
            <typeDesc></typeDesc>
        </subMainEle2>
    </MainEle2>
    <MainEle3>
    ..
    </MailEle3>
    <MainEle4>
    ..
    </MailEle4>
    ..
</MainElement>

Dim reader As XmlTextReader
reader = New XmlTextReader("c:\FileName")

While Not reader.EOF
    Select Case reader.NodeType
    Case XmlNodeType.Element 
        Select Case reader.Name
        Case "MainEle1"
            Call ProcessMainEle1(reader) ' passing reader as ref
        Case "MainEle2"
            call ProcessMainEle2(reader) ' passing reader as ref
        Case "MainEle3"
            call ProcessMainEle3(reader) 'passing reader as ref
                 ' and read many element
        End Select
    End Select
End While

Process メソッドでは、同様のアプローチを使用して挿入ステートメントを作成しています。それは正しいアプローチですか、それとも要素内に多くの要素を持つ大きなファイルに対する簡単なアプローチがありますか。初心者プログラマーへの指導をお願いします

4

1 に答える 1

0

ユースケースでは、DOM ベースではない XML パーサーを使用することが重要です。(SAXParser)

メモリ消費の観点から見ると、IT において DOM ベースの XML パーサーほど悪いものはありません。このようなパーサーは、低レベルの解析よりも 100 ~ 1000 倍多くのメモリを必要とし、より多くの作業が必要になります。

于 2012-11-26T22:27:17.987 に答える