2017-07-28 18 views
1

現在、SSISのスクリプトタスクでxpathとC#を使用してXMLファイルからデータを抽出しています。 この情報をSQLテーブルに後で記入したいと思います。xpath/cを使用してXML属性から値を抽出する#

私の入力XMLファイルは、この

<Order> 
<Header dateOfExecution="2017-06-22 08:30:09" orderId="5000206348" status="O" messageId="1" type="REQ" serviceProviderId="SP010" externalId1="b0ddcfece1a345338f20902401fa1e71" /> 
<Body> 
    <Oli> 
     <OliControl oliId="1" subscriptionId="990448" /> 
     <MIGOPT> 
      <MigratedOptions> 
       <Option operation="CHG" optionType="FLNDetails" optionId="O2O0056"> 
        <Attribute name="fixedLineOption" value="2" /> 
        <Attribute name="portingDate" value="2017-07-03 06:00:00" /> 
        <Attribute name="portingWindow" value="06:00:00" /> 
        <Attribute name="fixedLineSource" value="D001" /> 
        <Attribute name="fixedLineType" value="Analog" /> 
        <Attribute name="fixedLineNumber" value="490" /> 
        <Attribute name="LAC" value="06736" /> 
       </Option> 
      </MigratedOptions> 
     </MIGOPT> 
    </Oli> 
</Body> 
</Order> 

のように見える私は

string type = doc.SelectSingleNode("//Header/@type").InnerText; 

でヘッダから「タイプ」の値を取得するために管理しますがとき、私何とか機能が動作しません。すべての属性から値を取得しようとしています

string portingDate = doc.SelectSingleNode("//Attribute[name='portingDate']/@value").InnerText; 

私の間違いはどこですか?

答えて

3

nameの前に@が見つかりません。これを次のように変更してください:

doc.SelectSingleNode("//Attribute[@name='portingDate']/@value"); 
関連する問題